Skip to content

Beliavsky/Fortran-code-on-GitHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Fortran code on GitHub -- also see fortran-lang package index

Art and Music

Art1: program written by Richard Williams in 1968. Its purpose was to give non-progammers access to an IBM System/360 Model 40 computer at the University of New Mexico in order to explore artistic and aesthetic uses of the machine.

formidi: small Fortran MIDI sequencer for composing music and exploring algorithmic music, by Vincent Magnin

forsynth: small Fortran synthesizer to explore sound synthesis, sound effects, electronic music, algorithmic music, etc, by Vincent Magnin

MUSICV: Max Mathew's MUSIC V synthesis program, prepared by Bill Schottstaed for gfortran, with additions and fixes by Victor Lazzarini.

TapTempo Fortran: command line taptempo written in modern Fortran, by Vincent Magnin. Listen to a song and hit enter key with style and you'll get the corresponding number of beats per minute (BPM).

Tonbandfetzen: collection of command-line tools to compose music based on audio fragments generated from plain text input, by Jan Berges

uzura3: mpeg audio layer 3 encoder written in Fortran 90/95 (mp3 encoder), by cure-honey. There is also uzura1_fpm that works with the Fortran Package Manager.

XenakisFreeStochasticMusicFortran: working versions of a Xenakis FORTRAN program (Xenakis 1971 Formalized Music p 149)

Astronomy and Astrophysics

1-D-Supernova-shock-radius-evolution: 1-D version of the ZEUS 2-D CODE which solves hydrodynamic equations is applied to a SuperNova Remnant (SNR), by Lorenzo Cavazzini

Adaptive Spherical Overdensity Halo Finder (ASOHF): primarily designed to identify bound dark matter structures (dark matter haloes), as well as their stellar counterparts (galaxies) in the outputs of cosmological simulations. Associated paper: The halo-finding problem revisited: a deep revision of the ASOHF code, by David Vallés-Pérez, Susana Planelles, and Vicent Quilis, Astronomy&Astrophysics, 664 (2022).

ALBUS_ionosphere: determines the ionosphere total electron content (TEC) over any location on the Earth as a function of location and time, by Tony Willis. It then uses the TEC and a model of the Earth's magnetic field to compute the ionosphere's effect on the Faraday Rotion Measure (RM) observed for an astronomical radio source. The ionosphere's contribution to the RM can then be removed.

aquila astrophotography package: small LRGB astrophotography reduction and processing package, by Dominik Gronkiewicz. The package consists of the programs aqstack for stacking and reduction of monochromatic CCD images and aqlrgb for compositing images from many filters into one color picture.

ARTEMIS-P: Anisotropic Ray Tracer for Electromagnetism in Magnetospheres, Ionospheres and Solar wind, including Polarisation, by Baptiste Cecconi and C. Baskevitch

astro-api: makes the astronomical calculations for yr.no, by Frank Thomas Tveter et al. The astro-api software uses the JPL ephemeride tables and the SOFA astronomical library, along with algorithms for quick and precise searches, to provide astronomical data on demand, such as sun/moon rise/set, twilight, polar day/night, moon phase, eclipse, solstice times.

astro-fortran: modern Fortran implementations of standard models used in fundamental astronomy, by Jacob Williams. It is a refactoring of IAU SOFA.

astroTools: command-line tools for astronomy and astrophysics, by AstroFloyd

ATES-Code: ATES hydrodynamics code, by AndreaCaldiroli, computes the temperature, density, velocity and ionization fraction profiles of highly irradiated planetary atmospheres, along with the current, steady-state mass loss rate.

Automatic Line Fitting Algorithm (ALFA): identifies and fits hundreds of lines in emission line spectra in just a few seconds. It does this using a genetic algorithm to optimise the line parameters, by Roger Wesson

BI-spectra and Non-Gaussianity Operator (BINGO): numerically evaluates the scalar bi-spectrum and the non-Gaussianity parameter fNL in single field inflationary models involving the canonical scalar field, by dkhaz. The code is based on the Maldacena formalism to evaluate the bi-spectrum.

CAMB: code for Anisotropies in the Microwave Background, by cmbant

cleanest: semiautomatic removal of cosmic rays in astronomical images, by Nicolás Cardiel and Sergio Pascual

code-ans-qnm-share: computes quasi-normal modes of anisotropic neutron stars, by Vincent Lau Shu Yan

Commander: optimal Monte-carlo Markov chAiN Driven EstimatoR which implements fast and efficient end-to-end CMB posterior exploration through Gibbs sampling, from Cosmoglobe

Compact Object Synthesis and Monte Carlo Investigation Code (COSMIC): rapid binary population synthesis suite with a special purpose of generating realistic compact binary populations. COSMIC can also be used to evolve binaries with BSE in a python environment.

Complete History of Interaction-Powered Supernovae (CHIPS): simulates the circumstellar matter and light curves of interaction-powered transients, by DTsuna et al. Coupling the MESA stellar evolution code and codes implemented by the authors, the user can obtain the circumstellar matter profile and light curves of the interaction-powered supernovae.

Cosmology Object Oriented Package (COOP): Reference: Observational effects of a running Planck mass, by Zhiqi Huang

CosmoSIS: cosmological parameter estimation code, by joezuntz et al. It is a framework for structuring cosmological parameter estimation with a focus on flexibility, re-usability, debugging, verifiability, and code sharing in the form of calculation modules.

CUMC3D-Ver1.28: parallel code for high-energy astrophysical simulations, by Ho Sang (Leon) Chan et al. It includes basic MHD solvers and models for simulating accretion discs around supermassive black holes.

cufQUMC: CUDA Fortran version of QU-fitting with replica exchange MCMC method (parallel tempering), with a Python interface, by Shinsuke Ideguchi

DAOPHOT-MCMC: modified version of the subroutine NSTAR.F which implements a Markov chain Monte Carlo (MCMC) routine for fitting highly blended stellar positions and fluxes, by Sean Terry. This code is installed and implemented within the overall DAOPHOT-II structure.

DarkLim: statistical tools for calculating dark matter exclusion limits and sensitivity estimates, from SPICE/HeRALD

dasilva-invariants: Python package with Fortran code to calculate the adiabiatic invariants K and L* from gridded models of Earth’s magnetic field, by Daniel da Silva and Scot Elkington

D-NEAs: Asteroid Thermal Inertia Analyzer (ASTERIA) software. An associated paper is The low surface thermal inertia of the rapidly rotating near-Earth asteroid, by M. Fenucci et al., Astronomy and Astrophysics (2023)

dStar: computing neutron star structure and evolution, by Edward Brown et al.

DUMSES-hybrid: 3D MPI/OpenMP & MPI/OpenACC Eulerian second-order Godunov (magneto)hydrodynamic simulation code in cartesian, spherical and cylindrical coordinates, by Marc Joos

DYnamics, Age and Metallicity Indicators Tracing Evolution (DYNAMITE): Schwarzschild- and stellar-population modelling of stellar systems

ECLIPSE: code for paper "ECLIPSE: a fast Quadratic Maximum Likelihood estimator for CMB intensity and polarization power spectra" (2021), by J.D. Bilbao-Ahedo et al.

etfFinal: Neutron star inner crust code, by mgeshelley

evelchemevol: one-zone closed-box chemical evolution code written in Fortran with OpenMP, by lukeshingles

exotrending: fast and easy-to-use light curve detrending software for exoplanets, from oscaribv

FastQSL: code associated with Zhang, P., Chen, J., Liu, R. and Wang, C., FastQSL: A Fast Computation Method for Quasi-separatrix Layers. The Astrophysical Journal, 2022, 937, 26

fastSHT: code associated with the paper Accelerating spherical harmonic transforms for a large number of sky maps, by Chi Tian, Siyu Li, and Hao Liu

FEMlimb-Astrophysics: algorithm described in the paper Measuring limb darkening of stars in high-magnification microlensing events by the Finite Element Method, by L. Golchin and S. Rahvar, Monthly Notices of the Royal Astronomical Society (2020)

FluxConserving: Fortran code to compute the flux-density conservation, with a Python interface, by Jean Gomes

Fortran-Astro: module for calculating orbital elements, by Cengiz Yıldırım

fortran-astrodynamics: astrodynamics routines by Yuricst

Fortran-Astrodynamics-Toolkit: aims to be a comprehensive library, written in modern Fortran (Fortran 2003/2008), of all the standard orbital mechanics algorithms, by Jacob Williams

fortranMR: library for reading output files generated by MESA (Modules for Experiments in Stellar Astrophysics), by Joshua Aiken. It extends fortranDF to read in files as a data frame.

GaiaHub: Python/Fortran tool that computes proper motions combining data from Gaia and the Hubble Space Telescope, associated with paper GaiaHub: A Method for Combining Data from the Gaia and Hubble Space Telescopes to Derive Improved Proper Motions for Faint Stars, by del Pino, Andrés et al., The Astrophysical Journal, Volume 933, Issue 1, id.76, 18 pp. (2022)

galacticus: semi-analytic model of galaxy formation - a powerful toolkit for modeling the physics of how galaxies form

GALAXEV-fortran: Galaxy Spectral Evolution Library, by G. Bruzual and S. Charlot

GR1D: general relativistic, spherically symmetry, neutrino transport code for stellar collapse. Associated paper: An Open-Source Neutrino Radiation Hydrodynamics Code for Core-Collapse Supernovae, by Evan O'Connor, Astrophysical Journal Supplement Series, Volume 219, Number 2 (2015)

GYRE Stellar Oscillation Code: Given an input stellar model, GYRE calculates the eigenfrequencies and eigenfunctions for the normal oscillation modes of the model, by rhdtownsend et al. These data can be put to a variety of uses; the most common is to compare them against observed oscillation frequencies of a star, allowing constraints on the star's fundamental parameters (mass, radius, etc.) to be established — the discipline of asteroseismology.

halo: orbit solver that can be used to generate long-duration Earth-Moon halo orbits in the ephemeris model. Reference: J. Williams et al., Targeting Cislunar Near Rectilinear Halo Orbits for Human Space Exploration, 27th AAS/AIAA Space Flight Mechanics Meeting, 2017

hazel2: synthesis and inversion of Stokes profiles caused by the joint action of atomic level polarization and the Hanle and Zeeman effects, by aasensio

High-performance Flux Transport (HipFT): computational core of the upcoming Open-source Flux Transport (OFT) software suite, from Predictive Science. OFT is a complete system for generating full-Sun magnetograms through acquiring & processing observational data, generating realistic convective flows, and running the flux transport model.

HMcode: augmented halo model for accurate non-linear matter power spectrum calculations, by Alexander Mead and Tilman Troester.

IMage COMbination (IMCOM): software associated with Optimal Linear Image Combination, by Barnaby Rowe, Barnaby, Christopher and Jason Rhodes, The Astrophysical Journal, Volume 741, Issue 1, (2011).

img2nc: converts planetary Digital Elevation Model (DEM) data into NetCDF, allowing one to draw a topographic map of the Moon, by ShinobuAmasaki.

International Radiation Belt Environment Modeling (IRBEM) library: routines to compute magnetic coordinates for any location in the Earth's magnetic field, to perform coordinate conversions, to evaluate geophysics/space-physics models, and to propagate orbits in time.

JSPAM: software for simulating interacting galaxies using a restricted three-body approximation, in Fortran, Java, JavaScript, and Python, by aholinch and John Wallin

Just Another Vehicle for Estimating Lags In Nuclei (JAVELIN): version of the SPEAR algorithm written in Python to provide more flexibility in both functionality and visualization. One can use JAVELIN to model quasar variability using different covariance functions (Zu et al. 2013), and measure emission line lags using either spectroscopic light cruves (Zu et al. 2011) or photometric light curves (Zu et al. 2016).

K2_Fortran_Modules: modules for space weather modelling by Shah Saad Alam, associated with paper Simulation of radiation belt wave-particle interactions in an MHD-particle framework, by Anthony A. Chan et al., Front. Astron. Space Sci. (2023)

kcarta_gen: fast, accurate, easy-to-use pseudo-monochromatic radiative transfer code, by sergio66

KiloNova Explosion Code (kNEC): simulates hydrodynamical evolution of BNS merger ejecta and the corresponding kilonova emission, by Zhenyu Wu. It is based on the SNEC code by Morozova et al., which is a Lagrangian radiation-hydrodynamics code for core-collapse supernova explosion.

LAPS: UCLA-Pseudo-Spectral is a 3D MPI-parallelized Fourier-transform-based pseudo-spectral Hall-MHD code, with corotating-expanding-box-model implemented, by Chen Shi

legolas: modern tool for MHD spectroscopy, by n-claes

libTheSky: computes the positions and other properties of celestial bodies (Moon, planets, comets, asteroids, stars), events (e.g. lunar phases) and coordinate transformations, by Marc van der Sluys and AstroFloyd. It forms the core of the software that is used to create the Dutch popular-astronomy website http://hemel.waarnemen.com.

madwave3: wave packet propagation program for reactive collisions and photodissociation of triatomic systems, by Octavio Roncero

MAESTRO: solves the equations of low Mach number hydrodynamics for stratified atmospheres/stars with a general equation of state, from AMReX-Astro

magnetizer: post-processes the output of a semi-analytic model of galaxy formation and produces a catalogue of galaxies with detailed radial dependent ISM properties, including magnetic fields, by luizfelippesr

MCMax3D: Monte Carlo radiative transfer and disk modelling tool, described here. It sets up a disk structure using physical processes or a parameterised structure.

mercury: N-Body integrator based on Bulirsh-Stoer, Everhart and other methods, originally by John E. Chambers, that can integrate any star system, such as the Solar System

MESSY: Hénon-style Monte-Carlo code to simulate spherical stellar clusters and galactic nuclei; i.e. Monte Carlo simulations for stellar dynamics, associated with the paper Stellar Remnants in Galactic Nuclei: Mass Segregation, by Marc Freitag et al., Astrophysical Journal (2006)

MHD: outputs both binary and vdc data to generate Magnetic Flux ropes in quadrupolar photosphere topologies for Coronal Mass Ejections, by Jaiman Parekh and Satoshi Inoue

Microphysics: collection of astrophysical microphysics routines for stellar explosions, by Michael Zingale et al.

Mini-chem: kinetic chemistry network solver primarily for gas giant atmospheric modelling, pared down from the large chemical networks, associated with paper A mini-chemical scheme with net reactions for 3D general circulation models II. 3D thermochemical modelling of WASP-39b and HD 189733b, by Elspeth K. H. Lee, Shang-Min Tsai, Mark Hammond, and Xianyu Tan, Volume 672 (2023) Astronomy&Astrophysics, 672 (2023) A110

Modules for Experiments in Stellar Astrophysics (MESA): allow users to run experiments in stellar evolution. Stellar evolution calculations (i.e., stellar evolution tracks and detailed information about the evolution of internal and global properties) are a basic tool that enable a broad range of research in astrophysics.

MGITM: 3-D GCM of Mars atmosphere from the surface to 300 km aimed at solving for the dynamics of the upper atmosphere, by dpawlows

Multi-channel Image Reconstruction, Image Analysis, and Display (MIRIAD): radio interferometry data-reduction package, designed for taking raw data through to the image analysis stage, by Bob Sault et al.

msg: Multidimensional Spectral Grids -- project for evaluating radiant properties of stellar atmospheres by rhdtownsend

NASA Ames Mars Global Climate Model (AmesGCM): simulates the atmosphere and climate of the planet Mars using an external finite volume dynamical core to predict the global atmospheric state given various planetary parameters and physical parameters.

NASA Ames Legacy Mars Global Climate Model: uses a modified version of the ARIES/GEOS dynamical core coupled with a set of Mars physics packages to simulate the martian climate.

Naval Observatory Vector Astrometry Software (NOVAS): integrated package of routines for computing various commonly needed quantities in positional astronomy, refactored by Jacob Williams. The package can provide, in one or two subroutine or function calls, the instantaneous coordinates of any star or planet in a variety of coordinate systems.

Nbody6++GPU - Beijing version: N-body star cluster simulation code, by Rainer Spurzem and team. It is an offspring of Sverre Aarseth's direct N-body codes.

NEAT: calculates chemical abundances in photoionised nebulae, by Roger Wesson et al. It can propagate uncertainties and compensate for measurement biases affecting weak lines.

NormalModes: applies a combination of several highly parallel algorithms to compute the planetary interior normal modes, by js1019

NPI Ephemeris Propagation Tool with Uncertainty Extrapolation (NEPTUNE): state-of-the-art numerical orbit propagator, from Space-Systems. It allows the extrapolation of a state vector and the associated uncertainty forward and backward in time.

OrbFit: this version of the OrbFit package, by Marco Fenucci, contains a modified version of the orbit9 integrator. The integrator has been modified to integrate the spin axis dynamics of small asteroids, due to the Yarkovsky–O'Keefe–Radzievskii–Paddack (YORP) effect.

oorb: contains the statistical orbital ranging method (hereafter referred to as Ranging). Ranging is used to solve the orbital inverse problem of computing non-Gaussian orbital-element probability density functions based on input astrometry.

Optab: computes opacity based on user-provided chemical equilibrium abundances, and outputs mean opacities as well as monochromatic opacities, by Shigenobu Hirose. Consequently, one can have opacity tables consistent with one's equation of state.

optool: computes complex dust particle opacities from the command line, by Carsten Dominik and Ryo Tazaki. It is derived from Michiel Min’s DHS OpacityTool and also implements Ryo Tazaki’s MMF theory for highly porous aggregates.

phantom: 3D Smoothed Particle Hydrodynamics and Magnetohydrodynamics code for astrophysics, by Daniel Price and others

PhotochemPy: photochemical model of rocky planet's atmospheres, by Nicholaswogan. Given inputs, like the stellar UV flux, the atmospheric temperature structure, etc., this code will find the steady-state chemical composition of an atmosphere, or evolve atmospheres through time. Photochem is a rewrite in modern Fortran.

PIERNIK: grid-based MHD code using conservative numerical schemes: relaxing TVD scheme (Pen et al., 2003; Trac & Pen, 2003) and the recently implemented HLLD approximate Riemann MHD solver (Miyoshi & Kusano, 2005) combined with the Dedner et al. (2002) divergence cleaning algorithm.

Planetary Code Collection: Thermal and Ice Evolution Models for Planetary Surfaces, by Norbert Schorghofer

POT3D: High Performance Potential Field Solver: computes potential field solutions to approximate the solar coronal magnetic field using observed photospheric magnetic fields as a boundary condition. A version of POT3D that includes GPU-acceleration with both MPI+OpenACC and MPI+OpenMP was released as part of the Standard Performance Evaluation Corporation's (SPEC) beta version of the SPEChpc(TM) 2021 benchmark suites.

pycalc11: Python interface by Adam Lanman for running the CALC delay modeling tool, written in Fortran, by providing parameters as astropy objects. CALC aims to compute VLBI baseline delays to picosecond precision by incorporating general relativistic deflection from the Sun, Earth, and other planets, solid Earth and ocean tide loading, and atmospheric contributions

pymoog: Python 3 wrapper for running the LTE spectrum synthesis part of the Fortran code MOOG by Chris Sneden

python-fsps: Python bindings to Charlie Conroy's Flexible Stellar Population Synthesis (FSPS) Fortran code

radbelt: AE-8/AP-8 Van Allen belt model, describing the differential or integral, omnidirectional fluxes of electrons (AE-8) and protons (AP-8) in the inner and outer radiation belts, by Jacob Williams

RADMC-3D Version 2.0: computes the observational appearance of an astrophysical object on the sky of the observer, by dullemond. It solves the non-local radiative transfer problem of dusty media, including thermal radiative transport and scattering.

radtrancode: radiative transfer calculations and retrievals, originally written in Oxford University.

ramses: models astrophysical systems, featuring self-gravitating, magnetised, compressible, radiative fluid flows. It is based on the Adaptive Mesh Refinement (AMR) technique on a fully-threaded graded octree.

riaf-sed: computes spectral energy distributions of radiatively inefficient accretion flows (RIAFs) around black holes, by rsnemmen

Saturn-Mag-Model: Saturnian magnetospheric empirical magnetic field model derived from Cassini magnetometer data

shark: code associated with Protostellar collapse simulations in spherical geometry with dust coagulation and fragmentation (2023), by Ugo Lebreuilly, Valentin Vallucci-Goy, Vincent Guillet, Maxime Lombart, and Pierre Marchand, Monthly Notices of the Royal Astronomical Society, Volume 518, Issue 3, Pages 3326–3343

SMERCURY-T: upgrade of the SMERCURY orbital integrator that includes modules to enable the solar tidal spin torque as well as the general relativistic force, by Steven M. Kreyche

spacepy: Space Science library for Python, calling Fortran code - contains superposed epoch classes, drift shell tracing, access to magnetic field models, streamline tracing, bootstrap confidence limits, time and coordinate conversions, etc.

SpectralRadex: Python library for spectral modelling and RADEX, by Jon Holdship et al. SpectralRadex uses F2PY to compile a version of RADEX written in modern Fortran, most importantly dropping the use of common blocks. As a result, running a RADEX model creates no subprocesses and can be parallelized.

spiralssched: schedules for the Southern Hemisphere Parallax Interferometric Radio Astrometry Legacy Project (SPiRALS) experiment series, including trigonometric parallax observations, test observations, compactness observations and 3D distance observations, by Lucas Hyland and Gabor Orosz

splash: visualisation tool for Smoothed Particle Hydrodynamics (SPH) simulations in one, two and three dimensions, developed mainly for astrophysics, by Daniel Price

Starlib: Thermonuclear Rate Library: library of thermonuclear reaction and laboratory weak interaction rates. It can be used for studies of stellar models and nucleosynthesis.

starlink: astronomical data processing

starsmasher: smoothed particle hydrodynamics code for smashing stars (and planets), by jalombar

stochastic-parker: solves the Parker’s transport equation (and its extensions) using the stochastic method. Associated paper: Modeling Electron Acceleration and Transport in the Early Impulsive Phase of the 2017 September 10th Solar Flare, by Xiaocan Li, Fan Guo, Bin Chen, and Chengcai Shen, and Lindsay Glesener, The Astrophysical Journal Jun 2022

swiftest: n-body Integrator for gravitational systems, by Carlisle Wishard et al. It contains the Wisdom-Holman Mapping (WHM), Regularized Mixed Variable Symplectic (RMVS), Democratic Heliocentric (HELIO), and Symplectic Massive Body Algorithm (SyMBA) numerical integrators.

swiftest: models the long-term dynamical dynamics of n-body systems with a dominant central body, like the solar system, by David Minton et al. It is a re-write of the Swifter software package that incorporates modern programming techniques and performance improvements.

SWMF: Space Weather Modeling Framework is a software framework that provides a common operating environment for the various modeling components included. Each of the components models particular aspects of space weather (sun, heliosphere, magnetosphere, etc) and the various commands allow you to control how those models run and interact with each other.

Toolkit for High-ORder Neutrino Radiation Hydrodynamics (thornado): neutrino radiation-hydrodynamics code aiming to simulate core-collapse supernovae using discontinuous Galerkin methods, by Eirik Endeve et al.

Triple stellar evolution (TSE): single stellar evolution and binary interactions are modelled in Python using the binary population synthesis Fortran code MOBSE. An associated paper is Evolution of massive stellar triples and implications for compact object binary formation, by Jakob Stegmann et al., Monthly Notices of the Royal Astronomical Society (2022).

TRIPTYCH: simulates the collision of two stars, including the orbital trajectories, merger, and evolution of the merger product, by Pau Amaro Seoane and James C. Lombardi Jr. The code therefore joins three branches of stellar astrophysics: dynamics, hydrodynamics and evolution.

UCLCHEM: gas-grain chemical code for Astrochemistry

universe-age: calculate the age of the universe for various parameters by integrating Friedmann Equation, by shu-yusa

vkompth: code associated with paper vKompth: a variable Comptonization model for low-frequency quasi-periodic oscillations in black hole X-ray binaries, by Candela Bellavita et al., Monthly Notices of the Royal Astronomical Society (2022)

weaklib: code library for astrophysical applications, from starkiller-astro. It provides preprocessed equation of state (EoS) and neutrino opacity tables for use in neutrino transport calculations.

White Dwarf Evolution Code (WDEC): code associated with paper WDEC: A Code for Modeling White Dwarf Structure and Pulsations (2018), by Agnès Bischoff-Kim and Michael H. Montgomery

WinNet: single zone nuclear reaction network, capable of calculating many different nucleosynthesis processes (i.e., r-process, nup-process, explosive nucleosynthesis, and many more), associated with paper The Nuclear Reaction Network WinNet, by M. Reichert et al., Astrophysical Journal (2023)

XNet: thermonuclear reaction network for astrophysical applications, using a variety of temporal integration techniques, from starkiller-astro. It is written in portable modern Fortran and makes use of a variety of matrix solving packages to obtain excellent speed (as much as 50% of peak) on as many platforms as possible.

xnirspec: program to visualise and manipulate FITS images, by by Nicolás Cardiel, originally written to reduce spectroscopic data obtained with near-infrared spectrograph NIRSPEC, installed in one of the Keck Telescopes (Hawaii)

Yet Another Particle Simulation (YAPS): high-performance astrophysics simulation modeling black hole migration resulting from the merger of a large host galaxy with a smaller galaxy, by Daniel Harrington et al. The simulation uses CUDA acceleration and Fourier transforms to compute gravitational interactions between 100 million particles, including two supermassive black holes (SMBHs).

Benchmarks and Benchmarking

Assessment of Programming Languages for Computational Numerical Dynamics: compares different programming languages performance in order to solve CFD and Heat Transfer problems, by arturofburgos

Bandwidth Benchmark (Fortran version): collection of simple streaming kernels for teaching purposes, from RRZE-HPC. It is heavily inspired by John McCalpin's STREAM.

Basic Comparison of Various Computing Languages: Python, Julia, Matlab, IDL, R, Java, Scala, C, Fortran by Jules Kouatchou and Alexander Medema

bench_density_gradient_wfn: analyze the performance of evaluating the density gradient with various language implementations (C++/Fortran/Rust/Julia), by zyth0s

benchio: simple Fortran parallel IO benchmark for teaching and benchmarking purposes, by David Henty

Benchmark.f: KISS library for benchmarking functions and subroutines with precision, by David Pfister

benchmarks: high performance computing benchmarks and associated performance analysis workflows, from HPCL

Comparison of Programming Languages in Economics: code referenced in the paper "A Comparison of Programming Languages in Economics" by S. Borağan Aruoba and Jesús Fernández-Villaverde

Compiler-benchmark-suites: list of benchmark suites (and some loose kernels) in C and Fortran used in the research related to compilers, program performance, scientific computations etc.

cumsum_benchmark: benchmarks for the cumulative sum of an array, in Fortran, C++, Matlab, and Python, using various methods

ForBenchmark: a Fortran library for benchmarking (with support for coarrays). There are dot_product benchmark results, by Seyed Ali Ghasemi

fortran-math-tests: test programs for Fortran math libraries, by L. Fu

fortran-speed: compares speed of looping over individual arrays of variables with multiple dimensions to looping over arrays of derived types, where e.g., the last dimension is contained within the derived type, by Alex Robinson

Fortran-Stencil-Microbenchmarks: assesses the performance of different memory-bound finite difference kernels, by Vincent Meduski and Hugo Brunie. Compares the results using different hardware and software variables for use as machine-specific best practices.

Himeno Benchmark in Modern Fortran: Himeno benchmark to evaluate performance of incompressible fluid analysis code, written in Modern Fortran style, achieving almost the same execution performance as the original version, by Tomohiro Degawa. In this program, global variables are eliminated, and some variable names and subroutine names are refactored.

hpc-medley: two publicly available hpc benchmarks: NPB (NAS) and the HPL part of the HPCC challenge. It is used to determine the performance of clustered computing resources.

Julia, Matlab, Octave, and Fortran FEM Benchmark and Comparison: Benchmark and comparison of Julia, Matlab, Octave, and Fortran for a 2D Poisson problem solved on a unit square, by rdeits. The problem is discretized with Q1 bilinear Lagrange finite elements.

julia-numpy-fortran-test: comparing Julia vs Numpy vs Fortran for performance and code simplicity, by mdmaas

julia-pde-benchmark: benchmarks a very simple numerical integration algorithm for a 1d nonlinear partial differential equation (PDE) in Julia, Python, Matlab, C++, C, and Fortran, by John F. Gibson and Frank Otto. Results include execution time versus size of discretized system, and execution time versus lines of code.

Julia Syntax: Comparison with Fortran: simple cheatsheet and some performance comparison for scientific programmers who are interested in discover Julia, by Pierre Navaro

LINPACK: original (1000x1000 double precision) LINPACK benchmark, with bugfixes, by zaniyah

mandelbrot-f: Mandelbrot benchmark in Fortran by Jesper Olsen, who also has versions in Rust, Erlang, and Mojo

matmul: matrix multiplication benchmark by Ondřej Čertík

Microbenchmarks: micro benchmark comparison of Julia against other languages, including Fortran, from JuliaLang

miniApps-for-hpc: set of small codes representative of larger application programs run on supercomputers, by Vivek Kale. The reason that these codes were developed was to experiment with performance optimizations done on larger application programs.

NetworkDynamicsBenchmarks: scripts for benchmarking dynamical systems on networks, from paper "NetworkDynamics.jl -- Composing and simulating complex networks in Julia", by Michael Lindner et al.

nwchem-tce-triples-kernels: NWChem TCE CCSD(T) loop-driven kernels for performance optimization experiments, by jeffhammond

Performance comparison R, Julia, Fortran for Bayesian binary probit by driesbenoit

pi_examples: calculate pi using numerical integration of 1/(1+x**2), using Fortran with do concurrent, MPI, OpenMP, OpenACC, and other languages, by Owain Kenway et al.

plb2: nqueen, matmul, sudoku, and bedcov benchmarks in Fortran, C, Lisp, Go, Java, JavaScript, Julia, Python, Rust, and other languages

Python Performance: performance benchmarks of Python, Numpy, etc. vs. other languages such as Matlab, Julia, Fortran, from scivision

raytracer: raytracer benchmark in dozens of languages, by edin. Associated with paper M. Moreira-Soares, R. Coimbra, L. Rebelo, J. Carvalho & R. D. M. Travasso. "Angiogenic Factors produced by Hypoxic Cells are a leading driver of Anastomoses in Sprouting Angiogenesis–a computational study". Scientific Reports 8, 8726 (2018)

ScalSALE: Scalable SALE Benchmark Framework for Supercomputers, from Scientific Computing Lab NRCN

Simple N-Body with LeapFrog integrator: Implementation in C, Fortran, Go, Julia and Rust of a very simple N-Body simulator with 3 particles using a LeapFrog integrator. Presented in What can the programming language Rust do for astrophysics?, to appear in the Proceedings of the IAU Symposium 325 on Astroinformatics.

STREAM2: STREAM2 is an attempt to extend the functionality of the STREAM benchmark in two important ways: STREAM2 measures sustained bandwidth at all levels of the cache hierarchy and more clearly exposes the performance differences between reads and writes

Traveling Salesman Problem Exact algorithm: fastest to slowest are C++, Rust, Go, C#, Fortran, Dart, and Python, by Luis Harvey Triana Vega

Biology and Medicine

AHA-R1: large scale simulation model that implements a general decision-making architecture in evolutionary agents, by Sergey Budaev. Each agent is programmed as a whole virtual organism including the genome, rudimentary physiology, the hormonal system, a cognitive architecture and behavioural repertoire.

ANCC: Python scripts and Fortran code for ambient noise tomography, such as computing cross-correlation (with parallel computing), and extracting dispersion curves, by Youshan Liu

angio: 3D phase-field modelling for tumor angiogenesis, by phydev. Associated with paper M. Moreira-Soares, R. Coimbra, L. Rebelo, J. Carvalho & R. D. M. Travasso. Angiogenic Factors produced by Hypoxic Cells are a leading driver of Anastomoses in Sprouting Angiogenesis–a computational study. Scientific Reports 8, 8726 (2018)

Asexual Penna model: implementation of a biological aging model, as introduced in the paper by Thadeu Penna, A Bit-String Model for Biological Aging, Journal of Statistical Physics 78 (1995)

BrainTumors: time and space evolution of a brain tumor in 3D using the reaction-diffusion equation and finite differences to solve it numerically, by veneciachm

CardiacFEM: cardiac electro-mechanics solver based on ParaFEM, by Levrero

CAMI-Gz-Effects-Model-CGEM-: resource flow-based model of symptom induction and recovery from Gz accelerations in aeronauts. Associated report: Cerebral Blood Flow Based Computer Modeling of Gz-Induced Effects, by Kyle Copeland and James E. Whinnery, Civil Aerospace Medical Institute (CAMI) (2023)

Chromatin_Code: simulates the genome organization at a resolution of ~100 kbp, along with phase separation of active and silent regions of the genome using first principles. Associated paper: Euchromatin Activity Enhances Segregation and Compaction of Heterochromatin in the Cell Nucleus, by Achal Mahajan et al., Phys. Rev. X (2022)

COVID-testbias: Understanding the Bias between the Number of Confirmed Cases and Actual Number of Infections in the COVID-19 Pandemic, by dkhaz and xingangchen

covid19-vac-st: code and data for the paper Effects of infection fatality ratio and social contact matrices on vaccine prioritization strategies, by A. Schulenburg, W. Cota, G. S. Costa, and S. C. Ferreira, Chaos. 2022 Sep;32(9):093102

droplets_simulation: simulation of virus-laden droplets behavior from AFDET (Advanced Fluid Dynamics and Energy Transfer Lab)

dynSIS: code for paper Optimized Gillespie algorithms for the simulation of Markovian epidemic processes on large and heterogeneous networks, by Wesley Cota and Silvio C. Ferreira, Computer Physics Communications v. 219 (2017) pp 303-312

ECOSYS: code for terrestrial ecosystem biogeochemistry, by Robert Grant. A related project is EcoSim.

EpiDetector: identifies epistasis (i.e., gene-to-gene interactions) in a genome-wide analysis setting, by Jakub Pecanka. EpiDetector implements several flavors of a two-stage testing approach. The underlying methodology is described in this paper and book chapter.

Euplectella_HPC: code for paper Extreme flow simulations reveal skeletal adaptations of deep-sea sponges, by Giacomo Falcucci et al., Nature volume 595, pp 537–541 (2021)

Fortran Image Processing: processing, manipulating, and filtering CT scan data, by Nisarg Patel. A CT scan data could be binary RAW data or VTK data.

FSATOOL: fast sampling and analysis tool for biomolecules, by haomiao et al.

GENeralized-Ensemble SImulation System (GENESIS): molecular dynamics and modeling software for bimolecular systems such as proteins, lipids, nucleic acids, glycans, and their complexes. Main site is here.

GR-Eye: 3D Homogenized Constrained Mixture Model for Eye Growth and Remodeling - A Model of Staphyloma Formation, implemented as an Abaqus UMAT, by Fabian A. Braeu

hole2: analysis and visualisation of the pore dimensions of the holes through molecular structures of ion channels, by Oliver Smart et al.

Illustrate: biomolecular illustration tool. Associated paper: Goodsell, D.S., Autin, L, Olson, A.J.,Goodsell, D. S., Autin, L., & Olson, A. J. (2019). Illustrate: Software for biomolecular illustration. Structure, 27(11), 1716-1720.e1.

ktz-phasediag: generates phase diagram for the KTz Neuron. Code written for the paper Girardi-Schappo M, Bortolotto GS, Stenzinger RV, Gonsalves JJ, Tragtenberg MHR (2017) Phase diagrams and dynamics of a computationally efficient map-based neuron model. PLoS ONE 12(3): e0174621.

lungsim (Aether): pulmonary simulation library

Motility Analysis of T-Cell Histories in Activation (MATCHA): designs virtual T cells that move like biological T cells, from BerkeleyLab and Northern New Mexico College. The virtual T cells will match the speed and turning angle distributions of biological cells.

MycoplasmaGenitalium: modelling of Mycoplasma genitalium based on the WC computational model, by Ludovic Autin and Martina Maritan

NuPoP_Fortran: code to predict the nucleosome positioning based on DNA sequences underlying the NuPoP R package. Associated paper: Predicting nucleosome positioning using a duration Hidden Markov Model, by Liqun Xi et al., BMC Bioinformatics (2010).

Open Continuum Mechanics, Imaging, Signal processing and System identification (OpenCMISS-Iron): computational back-end for a mathematical modelling environment that enables the application of finite element analysis techniques to a variety of complex bioengineering problems, by Chris Bradley et al.

ParizPLOS2021: code associated with paper Pariz A, Fischer I, Valizadeh A, Mirasso C (2021) Transmission delays and frequency detuning can regulate information flow between brain regions. PLoS Comput Biol 17(4)

Parse: predicts protein regions that are disordered, and which subset of those can undergo phase separation. Associated paper: Paiz, E.A., Allen, J.H., Correia, J.J., Fitzkee, N.C., Hough, L.E., Whitten, S.T. Beta turn propensity and a model polymer scaling exponent identify intrinsically disordered phase-separating proteins J. Biol. Chem. 297, 101343 (2021).

PLOSCB2022: code associated with Orchestrated neuronal migration and cortical folding: A computational and experimental study, by Shuolun Wang et al., PLOS Computational Biology (2022)

QMCube (ren-qm3): suite written in Python, calling Fortran codes, initially focused on multiscale QM/MM simulations of biological systems, but open enough to address other kinds of problems. Associated paper: QMCube (QM3): An all-purpose suite for multiscale QM/MM calculations, by Sergio Martí, J. Comput. Chem. 2021, 42, 447-457

qptabsearch: tableau-based protein substructure search using quadratic programming. Associated paper: Stivala, A., Wirth, A. and Stuckey, P., Tableau-based protein substructure search using quadratic programming, BMC Bioinformatics 2009, 10:153

RBC3D: spectral boundary integral solver for cell-scale blood flow. Associated paper: Bryngelson, S. H., Guéniat, F., & Freund, J. B. (2019), Irregular dynamics of cellular blood flow in a model microvessel, Physical Review E, 100, 012203.

Reproductive Simulation Library (reprosim): placenta and uterus simulation libraries by Monika Byrne et al.

sequoia_notR: stand-alone equivalent to the R package sequoia, associated with paper Pedigree reconstruction from SNP data: parentage assignment, sibship clustering and beyond, by Jisca Huisman, Molecular Ecology Resources (2017). A related project is sequoiaExtra, a collection of R functions and Fortran programs loosely associated with R package sequoia and/or for general population genetics purposes.

snakedali: program for protein structural alignment and structure database search, based on the Dali (distance matrix alignment) method, from Doudna-lab

songbird-evo-model-FORTRAN: models evolution in a genetically simple population of songbirds, by Kaw-Han

SPECIES: R package for species number estimation with underlying Fortran code, by Ji-Ping Wang

svFSI: multi-physics finite element solver for patient-specific blood flow simulation including fluid-structure interaction and cardiac electrophysiology, by Vijay Vedula et al.

System for Processing Image Data from Electron microscopy and Related fields (SPIDER): image processing system for electron microscopy, especially useful for single-particle reconstruction, by Joachim Frank et al.

siQ-ChIP: sans spike-in Quantitative ChIP-seq: small package of bash and Fortran codes used to quantify ChIP-seq data without requiring "spike-ins" to be added to the ChIP-seq protocol. Associated with paper J Biol Chem. 2020 Nov 20;295(47):15826-15837. "A physical basis for quantitative ChIP-sequencing" by Bradley M Dickson, Rochelle L Tiedemann, Alison A Chomiak, Evan M Cornett, Robert M Vaughan, and Scott B Rothbart

umat_cartilage: subroutines for a multiphasic and fibril-reinforced model of articular cartilage, by shayansss

3D_Convolusional_Filtering: convolusional filtering of computed tomography scans, by JoGebert. Intended to get a clear separation between bone marrow and cancellous bone for subsequent binarization and calculations. Another project is Binarization and Domain Decomposition

Climate and Weather

asgs: the ADCIRC Surge Guidance System (ASGS), from StormSurgeLive, provides software infrastructure for automating ADCIRC for real time or operational deployments, as well as a variety of tools for pre- and post-processing ADCIRC data.

Automatic Lidar and Ceilometer Processing Framework (ALCF): tool for processing of automatic lidar and ceilometer (ALC) data and intercomparison with atmospheric models such as general circulation models (GCMs), numerical weather prediction models (NWP) and reanalyses with a lidar simulator using the COPS instrument simulator framework running offline on model output

bin-microphysics-model: bin-microphysics cloud model used in research and teaching, by Paul J. Connolly, who has other projects for cloud physics

CAPE: calculates Convectively Available Potential Energy (CAPE), which describes the instabilily of the atmosphere and provides an approximation of updraft strength within a thunderstorm, by Klemens Barfus

C_ClWxSim: very simplistic weather and climate simulator for worldbuilding, from RosesHaveThorns

Climate Modelling and Diagnostics Toolkit (climt): Python based library which provides a modular and intuitive approach to writing numerical models of the climate system. climt provides state-of-the art components and an easy-to-use interface to allow writing research quality models without modifying the underlying Fortran code.

Cloud-J: multi-scattering eight-stream radiative transfer model for solar radiation based on Fast-J, originally developed by Michael J. Prather (UCI)

Cloud Layers Unified By Binormals (clubb_release): single-column atmospheric model, with associated preprint CLUBB-SILHS: A parameterization of subgrid variability in the atmosphere, by Vincent E. Larson

convert_mpas: general conversion utility for MPAS-Atmosphere output files, by Michael Duda and David Ahijevych

CRUST: Climatic Research Unit Standardisation of Tree-ring data

CTSM: Community Terrestrial Systems Model (includes the Community Land Model of CESM), from ESCOMP

dinsol-v1.0-linux: simulates the incoming solar radiation at the top of the atmosphere following the Milankovitch cycles theory, by Emerson Damasceno Oliveira. The tool is ideal for preparing the boundary conditions of climate models, beyond being a helpful tool for educational purposes.

dwarf-p-cloudsc: standalone mini-app of the ECMWF cloud microphysics parameterization, by Michael Lange, Willem Deconinck, and Balthasar Reuter

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

ecrad: offline version of a radiation scheme suitable for use in atmospheric weather and climate models, from ecmwf

ExoRT: reasonably flexible two-stream radiative transfer code designed for use with 3D climate models, by Eric T. Wolf. In this software, contained are builds for a 1-D offline version, and for directly interfacing with CESM/CAM4.

FMS: Flexible Modeling System (FMS), from NOAA-GFDL, is a software environment that supports the efficient development, construction, execution, and scientific interpretation of atmospheric, oceanic, and climate system models

fst-tools: tools to manipulate RPN standard files, from Meteorological Research Informatics Services of Canada

gcm: Toy General Circulation Model in Literate Fortran, by pqnelson

Global ECMWF Fire Forecast (GEFF) model (geff): calculates fire danger indices from atmospheric inputs. It implements the Fire Weather Index, the National Fire Danger Rating System and the McArthur ratings in one single infrastructure.

GEOCLIM-dynsoil-steady-state: computes geographically-distributed chemical weathering rates (along with associated parameters) at steady-state, according to the given climatology (temperature and runoff) for several CO2 levels (2 at least), the topographic slope and the lithology fraction in each grid cell, by Nick Swanson-Hysell and Yuem Park

Finite Element Sea Ice-Ocean Model (FESOM2): Multi-resolution ocean general circulation model that solves the equations of motion describing the ocean and sea ice using finite-element and finite-volume methods on unstructured computational grids. The model is developed and supported by researchers at the Alfred Wegener Institute, Helmholtz Centre for Polar and Marine Research (AWI), in Bremerhaven, Germany.

fv3gfs: Finite­ Volume Cubed-Sphere dynamical core (FV3) Global Forecasting System (GFS), from NOAA-EMC

GARD: Generalized Analog Regression Downscaling code, from NCAR

GemmesF90: code corresponding to paper "Financial impacts of climate change mitigation policies and their macroeconomic implications: a stock-flow consistent approach." Climate Policy 20.2 (2020): 179-198, by timongo

GFDL_atmos_cubed_sphere: GFDL atmos_cubed_sphere dynamical core code, from NOAA-GFDL

Global Environmental Multiscale Model (GEM): integrated forecasting and data assimilation system developed by the Atmospheric Numerical Prediction Research Section, Meteorological Research Division, of Environment and Climate Change Canada.

Gridded Meteorological Ensemble Tool (GMET): software for created gridded meteorological datasets for precipitation and temperature, by Andy Newman. The current applications have been at a daily timestep, yielding daily total precipitation, mean temperature and temperature range.

GVTD-X: implements numerical method to retrieve tangential and radial wind components in atmospheric vortices from single-Doppler radar observations, which is named from pronounciation of a abbreviation "GVTD-HeCs" (Generalized Velocity Track Display with the Helmholtz-decomposition-based Closure assumption). By Satoki Tsujino.

Hail Trajectory Clustering: groups three-dimensional hail trajectories into similar clusters. Associated with paper Adams-Selin, R., 2023: A three-dimensional trajectory clustering technique. Monthly Weather Review

High-resolution Intermediate Complexity Atmospheric Research model (HICAR): variant of the Intermediate Complexity Atmospheric Research (ICAR) model developed for sub-kilometer resolutions. Associated preprint: Reynolds, D. S., et al., The High-resolution Intermediate Complexity Atmospheric Research (HICAR v1.0) Model Enables Fast Dynamic Downscaling to the Hectometer Scale, Geosci. Model Dev. (2023) in review

Himawari_HSD_Reader: reader for data from Japan's Himawari satellite, by Simon Proud. This utility reads 'raw' HSD format data and can convert it into more friendly formats such as NetCDF4.

Hurricane Analysis and Forecast System (HAFS): Unified Forecast System (UFS) hurricane application, an FV3 (Finite­ Volume Cubed-Sphere Dynamical Core) based multi-scale model and data assimilation system capable of providing tropical cyclone (TC, including hurricane and typhoon) analyses and forecasts of the inner core structure

icar: Intermediate Complexity Atmospheric Research Model (ICAR), from NCAR, a simplified atmospheric model designed primarily for climate downscaling, atmospheric sensitivity tests, and hopefully educational uses

libsim: libraries from ARPA-SIMC include a general purpose ''base'' library with modules for handling character variables, csv files, command-line arguments, physical constants, date and time computations, georeferenced coordinates, growable arrays and list structures of any type and other. Another set of libraries is specific to Meteorology and Earth Science and allows to work with gridded and sparse georeferenced data, perform interpolations, statistical processing in time, data quality control, thermodynamic computations.

Limited-area Version of GAME (L-GAME): numerical weather prediction (NWP) model. It is the application of the theory behind GAME to a regional quadrilateral grid.

LMDZE: simplified version of the LMDZ atmospheric general circulation model, by Lionel Guez. It has evolved aiming at clarity and robustness of the source code, taking advantage of modern features of the Fortran language.

MITgcm: A numerical model designed for study of the atmosphere, ocean, and climate, MITgcm’s (General Circulation Model) flexible non-hydrostatic formulation enables it to efficiently simulate fluid phenomena over a wide range of scales; its adjoint capabilities enable it to be applied to sensitivity questions and to parameter and state estimation problems.

Model for Prediction Across Scales (MPAS): develops atmosphere, ocean, and other earth-system simulation components for use in climate, regional climate, and weather studies. The primary development partners are the climate modeling group at Los Alamos National Laboratory (COSIM) and the National Center for Atmospheric Research.

Model of an idealized Moist Atmosphere (MiMA): intermediate-complexity General Circulation Model with interactive water vapor and full radiation. It is published in M Jucker and EP Gerber, 2017: Untangling the annual cycle of the tropical tropopause layer with an idealized moist model, Journal of Climate 30, 7339-7358.

multio: package developed by ECMWF that provides an application programming interface (API) for I/O-server functionality for distributed earth-system models and post-processing pipelines of a user-programmable list of actions

NoahMP: Noah with multiparameterization options (NoahMP) land surface model, from ESMWG

Noah-OWP-Modular: extended, refactored version of the Noah-MP land surface model, by K. Jennings et al. In order to ease readability, adaptability, and interoperability, the model has been broken out into a series of modules and data types that represent various components of model information and parameters as well as the energy and water balances.

National Ocean Service Operational Forecast System from NCEP Central Operations (nosofs-NCO): copy from NOAA's PMB website. This repository contains updates needed to run using GCC/GFortran compilers.

NCEPLIBS G2: Utilities for coding/decoding GRIB2 messages, by Hang Lei et al. This library contains Fortran 90 decoder/encoder routines for GRIB edition 2, as well as indexing/searching utility routines.

prepbufr_decoder: decode prepBUFR files to CSVs and encode CSVs to prepBUFR files, by Shawn Murdzek. BUFR (Binary Universal Form for the Representation of meteorological data) is Table Driven Data Representation Forms approved by the World Meteorological Organization (WMO) for operational use since 1988.

prodsim: collection of shell scripts and Fortran programs based on libsim, by Davide Cesari and ddales3. It is designed for processing raw numerical weather prediction (NWP) model output data and perform physically-based operations in order to obtain postprocessed data

pytdlpack: Python interface for reading and writing TDLPACK data, by eengl

RegCM: Regional Climate Model system RegCM, originally developed at the National Center for Atmospheric Research (NCAR), is maintained in the Earth System Physics (ESP) section of the ICTP.

Regional Atmospheric Modeling System (RAMS): highly versatile numerical code developed by several groups over the years, including the scientists at Colorado State University, the ASTER division of Mission Research Corporation, and ATMET. RAMS is used for simulating and forecasting meteorological phenomena.

RTE+RRTMGP computes radiative fluxes in planetary atmospheres, from earth-system-radiation. RTE+RRTMGP is described in a paper in Journal of Advances in Modeling Earth Systems.

Scalable Computing for Advanced Library and Environment (SCALE): basic library for weather and climate model of the earth and planets aimed to be widely used in various models. The SCALE library is developed with co-design by researchers of computational science and computer science.

scream: global atmosphere model targeted towards 3 km ("cloud resolving") resolution. It is part of the Energy Exascale Earth System Model (E3SM)

shumlib: libraries which are used by the UM; the UK Met Office's Unified Model, that may be of use to external tools or applications where identical functionality is desired. The hope of the project is to enable developers to quickly and easily access parts of the UM code that are commonly duplicated elsewhere.

simple atmospheric models: simple models of the atmosphere (and ocean), for classroom examples, by Mathew Barlow

SPARTACUS-Surface - Canopy radiation scheme: computes radiative transfer in complex 3D surface canopies, such as forests and cities, by Robin Hogan and VakankGrang. It makes use of the "SPARTACUS" technique, originally developed for clouds.

speedy.f90: intermediate complexity atmospheric general circulation model written in modern Fortran, by Sam Hatfield and Leo Saffin It is based on SPEEDY, developed by Fred Kucharski, Franco Molteni and Martin P. King.

SPEEDY-ML: combines the atmospheric general circulation model (AGCM) SPEEDY with a reservoir computing-based machine learning algorithm for weather prediction and climate simulations, by Troy Arcomano.

tcane_fortran: evaluate pre-trained artificial neural networks to estimate consensus hurricane intensity and track errors, as well as the associated uncertainties of the network predictions. Associated paper: Barnes, Elizabeth A., Randal J. Barnes and Nicolas Gordillo, 2021: Adding Uncertainty to Neural Network Regression Tasks in the Geosciences

TorchClim: framework that allows the introduction of ML/AI models that were trained using PyTorch into a climate model (aka GCM), by dudek313 and ktrapeznikov. It facilitates a fast turnover of the train-test-run workflow allowing for quick development of ML/AI-based parametrizations into parallel and distributed environments.

UCLALES-SALSA: large-eddy model coupled with a detailed sectional microphysics module for aerosol, clouds and precipitation, by Juha Tonttila et al.

urban Dutch Atmospheric Large Eddy Simulation (u-dales): large-eddy simulation (LES) model for urban environments. LES is an approach to turbulence modelling used in computational fluid dynamics to simulate turbulent flows over a wide range of spatial and temporal scales.

Unified Forecast System (UFS) weather model: weather model is used in several of the UFS applications, including the medium-range weather application and the short-range weather application.

VenusPT-tables: atmospheric absorption coefficient calculator: Utilizing HITRAN and custom spectroscopy for Venus and Mars radiative transfer studies, by Mikhail Razumovskiy. Also PrecisionSpec-Analyzer, a high-precision tool for atmospheric absorption calculations over narrow spectral ranges, focusing on detailed spectroscopic analysis using HITRAN and HITEMP data with standard and custom line shapes for terrestrial atmospheric studies.

weather-buoys: Processing weather buoy data in parallel, from modern-fortran

WRF: Weather Research and Forecasting (WRF) model

Code Tools

AD_dnSVM: Fortran Automatic Differentiation tool using forward mode for scalars (S), Vectors (V) and Matrices (M), by David Lauvergnat. It has no limit in terms of the number of independent variables (this number is defined at runtime) and can compute up to third derivatives.

adjac: automatic differentiation for generating sparse Jacobians, using Fortran 95 and operator overloading, by Pauli Virtanen

Audito: automatic differentiation tool for Fortran, by Michel V. Heinz. The mathematical operators have been overloaded to work with the newly defined types, which include not only the function value, but also the gradient, Hessian and Laplacian.

autodiff: automatic differentiation for up to 4th derivatives, by Simon Geard

Auto-Diff: implementation in Modern Fortran of backward mode automatic differentiation, by zoziha

bench-cli: cross-platform command line tool to benchmark commands and other executables/scripts in command lines written in Fortran, by Lateralus138. Very precise and fast.

Dual Number Automatic Differentiation (DNAD): update of code from Yu, W. and Blair, M.: "DNAD, a Simple Tool for Automatic Differentiation of Fortran Codes Using Dual Numbers," Computer Physics Communications, vol. 184, 2013, pp. 1446-1452, by oddlehod. Related project: Fortran_DNAD

exception_handling: tools for exception handling and tracing, by Sebastian Tillack

exceptions: experiment with exceptions in Fortran via a simple preprocessing step, by Arjen Markus

f2f90: utility to convert FORTRAN 77 fixed source form to Fortran 90 free source form, by Michael Metcalf, Peter A. Rochford, and Ben Trettel

fazang: library for reverse-mode automatic differentiation, inspired by Stan/Math library, by Yi Zhang

ffixed2free: converts FORTRAN fixed-format source code (FORTRAN 77 style) to free-format source code (Fortran 90 style), by Pirmin Kaufmann and Martin Schraner. Ffixed2free does not require the fixed-format code to be restricted to the FORTRAN 77 standard.

fortran2018-conditional-memory: library for the conditional allocation and deallocation of allocatable objects of Fortran intrinsic types, by Kevin Matthes

Fortran Debug Utilities: collection of some utilities useful for debugging code, by Pål Levold

fortran-git: Fortran 2008 ISO C binding interfaces to libgit2, by interkosmos

Fortran-RefCount: simple reference counting for Fortran

forwarddiff: 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

libfde: Fortran Development Extensions (library), by Zorkator

m_ad: collection of matrix derivative tests for forward and reverse mode algorithmic differentiation, by R. Quast. Associated paper: Giles, M. (2008) Collected matrix derivative results for forward and reverse mode algorithmic differentiation, Advances in Automatic Differentiation pp 35–44

prep: streamlined pre-processor primarily designed for use with Fortran, by urbanjost. It does not support procedural macros but does support variable substitution and reusable free-format text blocks which allows for basic templating as well as easy construction of multi-line CHARACTER variables; and is quite capable of supporting traditional conditional compilation.

progress-bar: simple progress bar module that is typically used to display the time integration process, by zoziha

progRESS+repORT (progrep}: utility to show live progress, status and stats of a running simulation or any compute job that executes a given number of iterations, by SomajitDey. Progrep can report for both serial (single-core) and parallel (multi-core/multi-node - e.g. OpenMP/MPI) jobs.

symengine.f90: Fortran wrappers by Rikard Nordgren and Ondřej Čertík of SymEngine, a fast symbolic manipulation library, written in C++

to_f90: Alan Miller's tool for converting Fortran 77 code to free-form Fortran 90 code, from jbdv-no

version-f: implementation of Semantic Versioning 2.0.0 by Minh Dao that aims to be a user-friendly tool for handling versions in Fortran projects.

Compiler Tests

AdHoc: archives ad hoc tests for modern Fortran compilers used by Sourcery Institute, Sourcery, Inc., their collaborators, sponsors, and clients. These tests emphasize support for the Fortran 2003 and 2008 standards along with features proposed for Fortran 2015 in technical specification TS 29113 Further Interoperability with C and the draft technical specification TS 18508 Additional Parallel Features in Fortran.

compiler-bugs: bug reports for Fortran compilers made by Ben Trettel

compiler-test-suite: test suite for C/C++/Fortran compilers developed by Fujitsu

FCVS_95: modified version of NIST F77 validation suite, updated for Fortran 95. The original is FCVS.

fortran-compiler-tests: collection of Fortran compiler bug examples and tests, by nncarlson

fortran_oo: tests compiler support of object-oriented programming features, by Alex Pletzer and Wolfgang Hayek

Fortran Tests: set of tests for Modern Fortran, by Galen M. Shipman

fortran-wringer-tests: collection of non-portable Fortran usage, standard-conformant or otherwise, by Peter Klausler, accumulated during the development of the f18 Fortran compiler (also known as "LLVM Flang")

infnan: functions for checking Inf/NaN, Zaikun Zhang. They should work even if the compilers are invoked with aggressive optimization flags such as gfortran -Ofast.

lfortran: integration tests of the LFortran compiler, by Ondřej Čertík et al., are here

llvm-test-suite: LLVM test-suite repository

reproducers: place to submit information necessary for reproducing bugs encountered at HPC centers, by Brad Richardson and Katherine Rasmussen. The intent is that in concert with submitting a bug report to a vendor or open source project the information is also submitted here so that other HPC centers can confirm the bug, and point users to the information.

test_compiler: tests the applicability of Fortran compilers in a project that develops optimization solvers, by Zhang Zaikun

Computational Chemistry

Aerosol Inorganic-Organic Mixtures Functional groups Activity Coefficients (AIOMFAC): thermodynamic group-contribution model to describe non-ideal mixing in liquid solutions

BayesApp: calculates the pair distance distribution function, p(r), from a SAXS/SANS dataset by a Bayesian indirect Fourier transformation (BIFT) algorithm, by Steen Hansen

Cassandra: Monte Carlo package developed in the Maginn group at the University of Notre Dame to perform atomistic simulations of molecules composed of rings, chains, or both. Cassandra is suited to compute the thermodynamic properties of fluids and phase equilibria.

chemfiles.f03: Fortran 2003 binding to the chemfiles library, by Guillaume Fraux et al.

Chemistry discovery engine (CDE): implements several different calculation types associated with chemical reaction-path analysis, by Joe Gilkes and Scott Habershon

ciaaw: library providing the standard and abridged atomic weights, the isotopic abundance and the isotopes' standard atomic weights, by Milan Skocic. It also provides a API for the C language.

ClassyMC: General Purpose Object Oriented Molecular Monte Carlo code. Classy is designed to be used for Metropolis Monte Carlo and other similar sampling methods in molecular simulations.

CoarseAIR: Fortran 2008 Code for State-to-State and Coarse-Grained Quasi-Classical Trajectory (QCT) Method. Reference: S Venturi - "Machine Learning and Uncertainty Quantification Framework for Predictive Ab Initio Hypersonics" - Ph.D. Thesis, University of Illinois at Urbana-Champaign (2021)

cofimaker: command-line tool for manipulating atomic coordinate files, by skoerbel

crest: Conformer-Rotamer Ensemble Sampling Tool based on the xtb Semiempirical Extended Tight-Binding Program Package, from grimme-lab

critic2: manipulation and analysis of structural and chemical information in molecules and periodic solids, by aoterodelaroza et al.

Donostia Natural Orbital Functional Software (DoNOFsw): performs computational chemistry calculations based on the Natural Orbital Functional Theory (NOFT), including PNOF5, PNOF6 and PNOF7. Correlation corrections after PNOF calculations can be estimated by second order perturbation theories.

DSAS: uses the modified phase-retrieval algorithm to determine the anomalous scattering substructure, by Fu Xingke et al. There is an automated parameters setting method that can automatically solve the optimal algorithm parameters for different SAD data sets

duo: diatomic code for solving a fully coupled rovibronic Schroedinger equation, by Trovemaster

Dynemol: tools for studying Dynamics of Electrons in Molecules, by Luis G. C. Rego and albertotrj

ecx: library providing formulas for electrochemistry with a C API, by Milan Skocic

EMsoft: computation and visualization of scanning electron microscopy diffraction patterns, notably EBSD, ECP, TKD, and EKP, by Marc de Graef et al. In addition, there are programs for TEM defect image contrast, CBED, PED, Laue x-ray diffraction, and a new series of programs for computational polarized light microscopy. EMsoftOO is an object-oriented version under development in Fortran 2018.

Equilibrate: chemical equilibrium solver by Nick Wogan which is based on EasyChem, which itself is a clone of the NASA CEA tool (described in Gordon and McBride 1994)

ewald-summation: efficient and easy-to-use implementation of the Ewald summation method, by Jonas-Finkler

Flexible Atomic Code (fac): software packge for the calculation of various atomic processes, by Ming Feng Gu

fenvelopes: calculate phases boundaries of multicomponent systems using Equations of State, currently supporting PT envelopes and PX envelopes with partial three-phase-behaviour, by Federico E. Benelli

Fermi-orbital descriptor Monte-Carlo (fodMC): generator for Fermi-orbital descriptor (FOD) positions to be used in the Fermi-Löwdin orbital self-interaction correction (FLO-SIC) method, described in paper Interpretation and automatic generation of Fermi-orbital descriptors, S. Schwalbe, K. Trepte, et al., Journal of Computational Chemistry, vol. 40, pp. 2843-2857, 2019

FREZCHEM: includes chloride, bromide, perchlorate, nitrate, sulfate, and bicarbonate-carbonate salts, strong acid chemistry, ferrous and ferric iron chemistry, aluminum and silicon chemistries, ammonia and ammonium chemistries, methane, ethane, and propane chemistries, and gas hydrate chemistry, by Giles Marion. This version includes both temperature and pressure dependencies.

forsus: provides a simple API to read json files containing pure component information, which can be used in other projects, by José Antonio Scilipoti

gibbs2: calculates pressure and temperature dependent thermodynamic properties of solids from ab initio results, by aoterodelaroza

GWMlib: Generic Water isotope Modelling Library, by Didier M. Roche

HFB: Hartree-Fock-Bogolyubov code for (hyper)nuclear structure calculations (version by P. Vesely)

hibridon: solves the close-coupled equations which occur in the quantum treatment of inelastic atomic and molecular collisions. Gas-phase scattering, photodissociation, collisions of atoms and/or molecules with flat surfaces, and bound states of weakly-bound complexes can be treated.

HICOLM: Multi-Methods for Molecules and Condensed Systems: molecular modelling of condensed systems. Reference: F. W. Fernandes, HICOLM: High-Performance Platform of Physical Simulations by Using Low Computational Cost Methods. doi: 10.22456/2175-2745.92486.

International Association for the Properties of Water and Steam (iapws): library providing the formulas for computing light and heavy water properties, by Milan Skocic, with interfaces to C and (in pyiapws) Python

kanon: program to compute chirality indices and assess molecular symmetry, by Asdrubal Lozada-Blanco

Kinetic Monte Carlo of Systems (kmcos): lattice based kinetic Monte Carlo with a Python front-end and Fortran back-end, by Max Hoffmann et al.

Kinetic PreProcessor (KPP): tool that assists the computer simulation of chemical kinetic systems, by Adrian Sandu et al. Also KPP-AR-boxmodel, a box-model for a KPP-generated chemistry mechanism using the auto-reduce feature to speed up computation

linemake: atomic and molecular line list generator, by Chris Sneden et al. Rather than a replacement for a number of well-established atomic and molecular spectral databases, linemake aims to be a lightweight, easy-to-use tool to generate formatted and curated lists suitable for spectral synthesis work.

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

MobCal-MPI: parallelization of the commonly used MobCal suite to calculate ion mobilities and collision cross sections, by Christian Ieritano and Scott Hopkins

Modular computation tool chain library (mctc-lib): common tool chain to use molecular structure data in various applications, from grimme-lab. This library provides a unified way to perform operations on molecular structure data, like reading and writing to common geometry file formats.

MolAlignLib: Fortran and Python library based on random rotations and quasi-local RMSD minimizations to align rigid molecules and clusters. Associated paper: M. Vasquez-Perez, L. A. Zarate-Hernandez, C. Z. Gomez-Castro, U. A. Nolasco-Hernandez. A Practical Algorithm to Solve the Near-Congruence Problem for Rigid Molecules and Clusters, Journal of Chemical Information and Modeling (2023)

molecular-tools: modules that undertake a number of basic molecular modelling / computational chemistry analysis and manipulations, such as structure file reading and writing (including pdb, gro, g96, xyz), and parsing output files from programs as Gaussian (fchk and log) and Molpro retrieving informations such as geometry, frequencies, normal modes, Hessian, Gradient, molecular orbital coefficients, etc., by Javier Cerezo

mstore: molecular structure store for testing, from grimme-lab

multi-crystal indexing data processing suite in macromolecular crystallography (MCDPS): associated with paper Zhou, Q., Gao, Z.Q., Dong, Z., Jiang, Y.M., She,Z., Geng, Z.& Dong, Y.H.(2021). A reference-based multi-lattice indexing method integrating prior information correction and iterative refinement in protein crystallography. Acta Cryst. A77

Non-Adiabatic Transfer Rates Calculations (NATRC): calculates non-adiabatic transition rates between two states in molecules, by Arthur I. Martynov and Alexander S. Belov. Calculations are carried out based on the classical and modified Bixon-Jortner-Plotnikov models.

nemo_eos: Fortran versions of equation of state of seawater as used by NEMO, wrapped in Python, by George Nurser

numsa: solvent accessible surface area calculation, from grimme-lab

pbepack: package to solve population balance equations for particulate processes, associated with the paper Solution of the Population Balance Equation for Two-Component Aggregation by an Extended Fixed Pivot Technique, by Hugo M. Vale and Timothy F. McKenna, Industrial & Engineering Chemistry Research (2005)

PICLas: parallel, three-dimensional PIC-DSMC solver developed cooperatively by the Institute of Space Systems, Institute of Aerodynamics and Gas Dynamics at the University of Stuttgart and the spin-off boltzplatz. PICLas is a flexible particle-based plasma simulation suite.

PGLWrapper: code for Chapters 6-9 of The Properties of Gases and Liquids, 6th ed., by J. Richard Elliott et al., focusing on equations of state (EOSs) to correlate and predict thermodynamic properties of pure compounds and mixtures

pmflib: toolkit for Free Energy Calculations, by kulhanek

postg: calculates the dispersion energy and related quantities in gas-phase systems using the exchange-hole dipole moment (XDM) model. An associated paper is Non-covalent interactions and thermochemistry using XDM-corrected hybrid and range-separated hybrid density functionals, by A. Otero-de-la-Roza and Erin R. Johnson, Journal of Chemical Physics (2013).

pydock3: Python package wrapping the DOCK Fortran program that provides tools to help standardize and automate the computational methods employed in molecular docking. Docking is the identification of the low-energy binding modes of a small molecule, or ligand, within the active site of a macromolecule, or receptor, whose structure is known.

Python-Fortran-Fluids (PyForFluids): Python package focused in the calculation of Fluid properties based on Equations of State (EoS), by Federico E. Benelli et al. It provides a simple interface to work from Python but also exploits the high performance Fortran code for the more heavy calculations.

RocketCEA: Python wrapper for the the NASA Fortran Chemical Equilibrium with Applications (CEA) code, which calculates chemical equilibrium compositions and properties of complex mixtures. Applications include assigned thermodynamic states, theoretical rocket performance, Chapman-Jouguet detonations, and shock-tube parameters for incident and reflected shocks.

QCxMS: quantum chemical (QC) based program that enables users to calculate mass spectra (MS) using Born-Oppenheimer Molecular Dynamics (MD), by Jeroen Koopman and Sebastian Ehlert. It is the successor of the QCEIMS program, in which the EI part is exchanged to x (x=EI, CID) to account for the greater general applicability of the program. Plot Mass Spectra (PlotMS) is an associated plotting program.

QMC=Chem: Reference: Quantum Monte Carlo for large chemical systems: Implementing efficient strategies for petascale platforms and beyond, by Anthony Scemama , Michel Caffarel, Emmanuel Osere.t and William Jalby (2013), Journal of Computational Chemistry, 34:11(938--951)

rate: code for fitting and predicting chemical kinetic data, by Andrew L. Cooksy

SPECIAL_BLEND: Supernova Parameter Estimation Code based on Insight on Analytic Late-time Burst Light-curve at Earth Neutrino Detector, by Akira Harada

string-amber: adaptive string method implementation in sander (AmberTools 22.3). Associated paper: Adaptive Finite Temperature String Method in Collective Variables, by Kirill Zinovjev and Iñaki Tuñón, J. Phys. Chem. A 2017, 121, 51, 9764–9772 (2017).

structure analysis on the command line (struca): simple tool to help compare structures and compute trajectory data on the command line, by Holger Kruse

Surface Assessment via Grid Evaluation (SuAVE): accounts for the effect of curvature in the calculations of structural properties of chemical interfaces regardless of the chemical composition, asymmetry, and level of atom coarseness, by Denys E. S. Santos et al. It employs differential geometry techniques, enabling the representation of chemical surfaces as fully differentiable.

taurus_vap: solves the variation after particle-number projection equations for real general Bogoliubov quasi-particle states represented in a spherical harmonic oscillator basis, from project-taurus

THERMOCHIMICA: computational library for chemical thermodynamics. It determines a unique combination of phases and their compositions for a prescribed chemical composition, temperature and pressure, from ORNL-CEES.

tinker: Tinker molecular modeling software is a complete and general package for molecular mechanics and dynamics, with some special features for biopolymers.

TROVE: Theoretical ROVibrational Energies: A variational program for accurate nuclear motion calculations, by Trovemaster

UniMoVib: unified interface for molecular harmonic vibrational frequency calculations, by zorkzou and smutao

YA_EoS: thermodynamic equations of state library with both automatic and analytical derivation capabilities, by Federico E. Benelli

Containers and Generic Programming

any: user-defined type for mimicking procedures that can return different types, by Tomohiro Degawa

array_range: provides user-defined types array_range{1|2|3}d_type to improve the manipulation of bounds of Fortran arrays, by Tomohiro Degawa

ClassicalDataStructuresF95: classical data structures such as the singly linked list and stack, by truongd and Sesshōmaru

collections: set of types supporting collections in Fortran, by Jason Christopherson. Currently, the library contains a generic, dynamically sizable list and a generic linked-list type.

enhanced-allocatables: proposal to extend allocatable arrays to be dynamically reallocatable/resizable, with an implementation that calls C++, by PierUgit

for_fifo_queue: dense linked fifo queue, by ordan4ibanez. It is dense because it allows unlimited polymorphism in the queue without using additional indirection.

Fortran_competitive_library: library for solving AtCoder problems, implementing a binary indexed tree, hash table, linked list, tuples, and merge and selection sort

Fortran Library based on Interfaces and Templates (FLIT): generic library providing a number of useful functionalities for computational geophysics and beyond, by Kai Gao. These functionalities include several single/multi-dimensional array manipulation functions/subroutines, flexible parameter reading from textual file or command line arguments, signal and image filtering and processing, integral transforms, interpolation, statistical functions, and so on.

enumul: incomplete typed enumerator emulator for Fortran, by Tomohiro Degawa

fdict: native Fortran 90 dictionary with hash tables for retaining any data-type in a Python-like dictionary, by Nick Papior

fhash: hash table with support for generic keys and values, by Laurence Kedward

ffhash: generic and fast hash table similar to khash in C, by Jannis Teunissen

fh_table: modern Fortran hash functions and hash tables, by dbartilson

flinkedlist: object-oriented library providing an simple linked list, with the ability to sort elements with a user-defined function, apply a user-defined function in each node, and a convenience method to aid print debugging by automatically displaying variables of built-in types and providing a dedicated display function for user-defined types, by Yuichiro Sakamoto

flist: modern Fortran linked lists using unlimited polymorphic derived types, by Jacob Williams

FMacro: template preprocessor for Fortran, by Harris Snyder. Aims to address Fortran's lack of support for generic programming with a simple preprocessor, modeled after some of the language committee's early ideas for a template language feature, to be included in a future Fortran standard.

fortran-container: resizable array, hash table, and linked list, by Li Dong et al.

fortranDF: data frame that can have columns of different types, by Joshua Aiken

fortran-dictionary: implementation of a hashmap aka dictionary, by Elias Toivanen

Fortran Elements Library: list, dictionary, shared pointer, and error handler, by Dominik Gronkiewicz

Fortran Implementation of Abstract Types (FIAT): aims to implement various common data structures in Fortran, by Chris MacMackin and gitter-badger. These will be implemented in a generic manner using a container type. This was originally developed in PolyCon but has since been folded into FIAT, with some improvements.

Fortran-Linked-List: linked list module for stdlib of fortran-lang, by ChetanKarwa

fortran-list: generic list implementation in Fortran 2003, by Vladimír Fuka. Uses unlimited polymorphics or parametric polymorphism.

Fortran Parameter List (FPL): Fortran 2003 library that can manage the parameters of a program from a single point, by victorsndvg. FPL is an extendible container (dictionary) of <Key, Value> pairs, where the Key is a character string and the Value can be, by the default, of the basic data types.

Fortran Preprocessor Templates for Dynamic Data Structures (FPT-DDS): implements Fortran templates to create dynamic data structures using preprocessor directives, by Sergio Alexis Paz. A data structure for an arbitrary data type can be easily constructed by defining a few preprocessor variables and including the corresponding files distributed in the include folder.

Fortran Template Library (FTL): generic containers, versatile algorithms, easy string manipulation, and more, by Robert Rüger and Tomáš Trnka. It is heavily inspired by C++'s standard library, especially the part that is commonly referred to as the Standard Template Library (STL).

Fortran Template Library (FTL): object-oriented implementation of generic containers similar to the C++ STL (Standard Template Library), by Fran Martinez Fadrique. Not all elements present in STL are implemented in FTL, yet the documentation in http://www.cplusplus.com/reference/stl/ can be used as generic conceptual reference.

fortran_vector: bindings to c-vector by jordan4ibanez. C-vector is a dynamic array implementation in C similar to the one found in standard C++.

fortran_vector: derived type for vector of integers, with procedures init, append, size, pop, remove, delete, unique, sort, cut, and clear, by Euler-37

fstack: custom stack type for Fortran 2003 that implements a C-style stack, by jake-87. The advantage of this model is that one can have multiple stacks at any one time, so there is no need to juggle them -- just allocate another one.

FTObjectLibrary: provides a collection of reference counted Fortran 2003 classes to facilitate writing generic object oriented Fortran programs, by David A. Kopriva et al.

gFTL: provides a mechanism to easily create robust containers and associated iterators which can be used within Fortran applications, from Goddard-Fortran-Ecosystem. The primary methods are intended to be as close to their C++ STL analogs as possible. Also see gFTL-shared

hashmap_f90: bindings to hashmap.c, by jordan4ibanez

hashtable: hash tables by Jeremie Vandenplas based on the function hashword in lookup3.c by Bob Jenkins. Five derived types are available, for character, integer, and real scalars, and for integer and real arrays

integer_set: simple unoptimized 32-bit and 64-bit integer sets, by jordan4ibanez

LinkedList: simple implementation of heterogeneous linked list in a single module, by Pedro Ricardo C. Souza

LinkedList: doubly linked list for Fortran 2003, by Tomohiro Degawa. The list is based on object-oriented programming, so the list can treat all types Fortran supports, including integer, real, character and derived types by using the unlimited polymorphism feature.

list: easy-to-use implementation of Python-like lists, with methods append(), clear(), copy(), count(), extend(), insert(), pop(), remove(), reverse(), sort(), by Zdenek Grof

M_anything: use polymorphism to allow promoting, casting and molding intrinsic types, by urbanjost

maps: wrapper by Tomohiro Degawa for stdlib_hashmaps that simplifies adding a key-value mapping and getting the value mapped to a key

M_hashkeys: collection of hash key generator modules, by urbanjost

Multidimensional Array Containers (MAC): library to create and manipulate arrays of any rank, by Álvaro R. Puente-Uriona, meant to serve as a building block for codes that expand on "rank-agnostic" programming

multidim_loop_iterator: versatile iterator for multi-dimensional loops with customizable lower bounds, upper bounds, and strides for each dimension, by Zdenek Grof. It simplifies the process of iterating over multi-dimensional arrays by abstracting the complexities of nested loops.

PolyCon: abstract container derived type which can be used as a sort of unlimited polymorphic entity whose contents are retrievable with type-guards, by Chris MacMackin. Different subclasses are created in order to hold different data-types.

repot: abstract data types designed for the repository pattern for reading configuration files in Fortran, by Tomohiro Degawa. The repository pattern is a design pattern that makes an object persistent in a repository and reconstructs it from the repository. Repot_examples has practical usage examples.

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

rearrayfx: demonstrates a reallocatable array structure with overprovision at re-allocation in order to decrease the number of reallocations, by Bálint Aradi

slinked-list: simple generic singly linked list module for in-memory storage of small amounts of data, by zoziha

smart-pointers: tracks references to program resources and automates the freeing of those resources if and only if the reference count drops to zero, by Damian Rouson et al. Most commonly, the reference is a pointer and the resource is memory.

VectorClass: Fortran 2003 dynamic memory array that functions similarly (but not identically) to the C++ Vector class, by Tyler Chang

Yet Another Fortran Tree (yaftree): single-module lightweight implementation of a dictionary (key--value pairs) and set (only keys), by Dominik Gronkiewicz. Some features, such as interface for popular data types (INTEGER, CHARACTER etc) are intentionally omitted to keep the size down to the minimum.

Computational Fluid Dynamics

2DEulerSolver: numerically solve the Euler equations over a channel with a bump using Jameson scheme finite volume analysis, by FrostyNip

2DHydro: solve 2D Euler equations for simple systems and create videos of the simulations with Python, by Sudarshan Neopane. Wave_2D_MPI_HDF5 solves the wave equation with a source term in 2D, using the finite difference method in parallel, with output written in hdf5 format.

adflow: flow solver developed by the MDO Lab at the University of Michigan. It solves the compressible Euler, laminar Navier–Stokes and Reynolds-averaged Navier–Stokes equations using structured multi-block and overset meshes.

Advanced Finite Difference flow solver with Multiple Resolution and Phase-Field implementations (AFiD-MuRPhFi): highly parallel application for simulating canonical flows in a channel domain, by Chris Howland

AerOpt: aerodynamic optimisation code based on control node parameterisation, by Ben Evans et al.

afivo-streamer: code for fluid simulations of streamer discharges, from Multiscale Dynamics - CWI. It is based on the afivo framework, which provides adaptive mesh refinement (AMR) and a multigrid solver for Poisson's equation.

AMR-LBM-OpenMP-2D: Adaptive Mesh Refinement (AMR) technique utilized with the Lattice-Boltzmann Method (LBM) for numerical simulation of multiphase flows, by AbbasHub. OpenMP is used for parallelization of the code on share-memory machines.

asimov-ccs: CFD and combustion code designed to scale to large numbers of cores. It follows a "separation of concerns' design that separates interfaces from implementations, and physics from parallelisation.

astr: high-order finite-difference flow solver for compressible turbulence research, by Jian Fang et al.

BGK2D_GPU: 2D CFD Lattice Boltzmann Method code developed to 1) give an efficient implementation of LBM 2) Exploit mulithreading 3) Assess performance using (different) GPUs, by Giorgio Amati. Also BGK3D_GPU.

Broadcast: discretises the compressible Navier-Stokes equations and then extracts the linearised N-derivative operators through Algorithmic Differentiation (AD), providing a toolbox for laminar flow dynamics. Associated paper: BROADCAST: A high-order compressible CFD toolbox for stability and sensitivity using Algorithmic Differentiation, by Arthur Poulain et al., Computer Physics Communications, Volume 283, 2023, 108557.

C81-Interface: parses and creates C81 formatted airfoil tables, by Cibin Joseph

CaNS: fast, massively-parallel direct numerical simulations (DNS) of canonical flows, by p-costa and nscapin

cemfDEM: code corresponding to the book Coupled CFD-DEM Modeling: Formulation, Implementation and Application to Multiphase Flows by Hamid Reza Norouzi et al.

CFD: basic CFD schemes implemented in Fortran using Finite-Volume and Finite-Difference Methods, by brli3. Sample simulations and figures are provided.

CFD Utility Software Library (CFDTOOLS): contains nearly 30 numerical analysis libraries and close to 100 utility applications built upon those libraries. These utilities were developed over a rougly fifty year span to support aerospace research and development activities at NASA Ames Research Center (ARC).

CFL3D: structured-grid, cell-centered, upwind-biased, Reynolds-averaged Navier-Stokes (RANS) code, by Chris Rumsey et al. It can be run in parallel on multiple grid zones with point-matched, patched, overset, or embedded connectivities.

CGNS: the CFD General Notation System (CGNS) provides a standard for recording and recovering computer data associated with the numerical solution of fluid dynamics equations

channel: direct numerical simulation of an incompressible turbulent channel flow with two dimensional parallelization, by Davide Gatti

Channel3d: efficient second- /fourth-order finite-difference direct numerical simulation (DNS) solver with versatile viscous treatments, also with the ability to handle different boundary conditions, by GongZheng-Justin

CMPLXFOIL: version of Mark Drela's XFOIL code for the design and analysis of subsonic isolated airfoils with the GUI features removed and gradient computation implemented with the complex-step method, from mdolab

CloverLeaf_ref: solves the compressible Euler equations on a Cartesian grid, using an explicit, second-order accurate method, from UK-MAC. Each cell stores three values: energy, density, and pressure.

code_saturne: CFD software handling either incompressible or expandable flows with or without heat transfer and turbulence

contur: code in Appendix D of J.C. Sivells, A computer program for the aerodynamic design of axisymmetric and planar nozzles for supersonic and hypersonic wind tunnels, ARO Inc., a Sverdrup Corporation Company, ADEC TR 78 63, December 1978. The code uses a combination of analytical solutions, the method of characteristics, and centerline distributions in order to calculate the divergent section of a convergent-divergent de Laval nozzle.

Couette-Poiseuille-Flow: computation of Couette-Poiseuille flow with a mixing-length model of turbulence, by Akshay Anand

CP3d: code associated with Z. Gong, Z. Wu, C. An, B. Zhang, X. Fu, CP3d: A comprehensive Euler-Lagrange solver for direct numerical simulation of particle-laden flows, Computer Physics Communications, 286 (2023) 108666.

cruna-toolkit: (aero)acoustic solver that can find, reconstruct, or optimize sound sources with impedance boundary conditions, by Lewis Stein and Mathias Lemke. The solver utilizes adjoint-based optimization techniques and includes the full non-linear Euler and Navier-Stokes equations in a finite-difference time-domain approach.

CUBic Equation of state Navier-Stokes (CUBENS): massively-parallel GPU-accelerated high-order solver for direct numerical simulations of non-ideal wall-bounded flows, by Pietro Carlo Boldini

DesignTurb: offers a versatile method for constructing the vorticity of vortex tubes with customizable centerline topology, differential twist, and variable thickness. An associated paper is Role of internal structures within a vortex in helicity dynamics, by Weiyu Shen et al., Journal of Fluid Mechanics (2023).

EOF: simulation of electro-osmotic flow by Lattice Boltzmann method, by parkeryang69

EPIC: Elliptical Parcel-in-Cell model for fluid dynamics, by Matt Frey

euler2D-kfvs-Fortran2003: compressible Euler equations solver using kinetic flux vector splitting (KFVS) scheme, by truongd8593

Exact_Riemann_Solver: code associated with The exact solution of the Riemann problem in relativistic magnetohydrodynamics, by B. Giacomazzo and L. Rezzolla, Journal of Fluid Mechanics 562, 223 (2006)

FEST-3D: solves Navier-Stokes equations on a structured grid using state of the art finite-volume numerical methods. It is a modular, multiblock finite-volume code developed to solve compressible flow problems encountered in the field of aerodynamics.

flexi: High-Order Unstructured Discontinuous Galerkin Fluid Dynamics Solver

Flexible Aerodynamic Solver Technology (FAST): set of Python modules implementing HPC solvers for computational fluid dynamics, calling Fortran code, from ONERA, the French Aerospace Lab

Flow81: basic CFD solvers by corygoates

flowmol: molecular dynamics solver for molecular fluid dynamics simulation, by David Trevelyan and Ed Smith

Fluid2d: versatile Python-Fortran CFD code that solves a large class of 2D flows, by Guillaume Roullet et al. It is designed to be used easily by Students learning Fluid Mechanics or Geophysical Fluid Dynamics and by their professors willing to illustrate their course and to organize numerical practicals.

fluidity: open source, general purpose, multiphase computational fluid dynamics code capable of numerically solving the Navier-Stokes equation and accompanying field equations on arbitrary unstructured finite element meshes in one, two and three dimensions

FLUSI: Fluid-Structure-Interaction / MHD Research Code, from pseudospectators. Relies on Fourier transforms for derivatives and the volume penalization method to include obstacles.

Fluid Transport Accelerated Solver (FluTAS): modular, multiphysics code for multiphase fluid dynamics simulations. The code is written following a "functional programming" approach and aims to accommodate various independent modules. One of the main purposes of the project is to provide an efficient framework able to run both on many-CPUs (MPI) and many-GPUs (MPI+OpenACC+CUDA-Fortran).

fluxo: solves linear and nonlinear advection diffusion equations, for example the compressible Navier-Stokes equations, the resistive magneto-hydrodynamic equations and others

Fortran Environment for Numerics (FEN): environment for performing numerical simulations, including a finite difference solver for the incompressible Navier-Stokes equations, fast direct solver for the solution of the Poisson equation, volume of Fluid solver (MTHINC) for multiphase simulations, direct forcing immersed boundary method for simulation of flow around solid objects, and computational parallelism by MPI, by Francesco De Vita

Fortran LBM: Lattice Boltzmann solver for fluid flows, by Mehdi Samiee

FortranVortexIdentify: identifies discrete vortices from the velocity field data, using MPI, which are the result of a DaVis PIV process, by RickXie43

fosolvers: suite of free and open source solvers, created with the goals of solving practical engineering problems and being easy to hack, by mianzhi

freeCappuccino: three-dimensional fully unstructured finite volume code for Computational Fluid Dynamics which comes in serial and parallel version, by nikola-m. FreeCappuccino is also a Fortran library for manipulation of discrete tensor fields, defined over polyhedral meshes.

fvortex: implements vortex method, with applications to Elliptic Lamb–Oseen vortex and Melander, McWilliams, and Zabusky vortex, by Sergey Litvinov

GATT_DNS: Direct Numerical Simulation code for the compressible Navier-Stokes equations, associated with the thesis of Marlon Sproesser Mathias, Computational study of the hydrodynamic stability of gaps and cavities in a subsonic compressible boundary layer (2021)

Geophysical High-Order Suite for Turbulence (GHOST): accurate and highly scalable pseudospectral code that solves a variety of PDEs often encountered in studies of turbulent flows. It is mainly developed by Pablo Mininni and Duane Rosenberg, with contributions from many users.

HORSES3D High-Order (DG) Spectral Element Solver: multiphysics environment where the compressible Navier-Stokes equations, the incompressible Navier–Stokes equations, the Cahn–Hilliard equation and entropy–stable variants are solved. Arbitrary high–order, p–anisotropic discretisations are used, including static and dynamic p–adaptation methods (feature-based and truncation error-based).

IMEXLB-1.0: Lattice Boltzmann Method (LBM) proxy application code-suite for heterogeneous platforms (such as ThetaGPU). A ProxyApp, by definition, is a proxy for a full-fledged application code that simulates a wider array of problems.

Improved_Phase-Field_LBM_2D: Improved conservative phase-field LBM code for multiphase flows in a 2D periodic domain, by Abbas Fakhari. It is a sample Lattice-Boltzmann solver for two-phase flows.

Incompact3d: Fortran-MPI based, finite difference high-performance code for solving the incompressible Navier-Stokes equation and as many as needed scalar transport equations

interpolate-fields: interpolates DNS data to a new grid using linear interpolation, by Pedro Costa. It can run and store the interpolated data in a massively-parallel setting using MPI I/O. For now, it assumes two regular Cartesian grids with the file format of CaNS.

Inverse-gas-dynamic-tables-and-codes: programs and input data files for finding the Mach number through inverses of supersonic area ratio, subsonic area ratio, and Prandtl-Meyer angle, by anillals

jCODE: high-performance multiphase/multi-physics flow solver from the Jesse Capecelatro research group. The code is capable of solving the multi-component compressible Navier-Stokes equations on structured curvilinear meshes using a class of high-order energy-stable finite difference operators.

KatzPlotkin: Fortran programs provided by Joseph Katz and Allen Plotkin in their book Low-Speed Aerodynamics

LBcuda: CUDA Fortran code to solve Lattice Boltzmann equations of a multi-component flow interacting with rigid spherical particles, by Fabio Bonaccorso et al.

lbm2d_opencl: D2Q9 BGK Lattice Boltzmann code written in OpenCL and Modern Fortran, by Laurence Kedward

lesgo: solves the filtered Navier-Stokes equations in the high-Reynolds number limit on a Cartesian mesh, from the Turbulence Research Group at Johns Hopkins University. Originally designed to simulate flow in the atmospheric boundary layer, LESGO has been extended and used to simulate flow over tree canopies, wall-mounted cubes, and wind turbine arrays, among other things.

LNS3D compressible Navier-Stokes Solver: part of the Flow Physics & Simulation code suite of fluid mechanics analysis codes to explore linear and nonlinear phenomena, primarily for compressible flows, by S. Scott Collis

LPPM: Lagrangian Particle-Panel Method for solving the barotropic vorticity equation and the advection equation on the sphere and in the plane. Associated paper: P. Bosler, L. Wang, R. Krasny, and C. Jablonowski, 2014, A Lagrangian particle/panel method for the barotropic vorticity equation on a rotating sphere, Fluid Dynamics Research, 46 : 031406.

Lubrication-Dynamics-Biviscous: code for suspensions in Newtonian and biviscous matrices with a lubrication dynamics model, associated with paper Numerical investigation of the rheological behavior of a dense particle suspension in a biviscous matrix using a lubrication dynamics method, by S.S. Prasanna Kumar et al., Journal of Non-Newtonian Fluid Mechanics (2020).

MagIC: simulates fluid dynamics in a spherical shell. MagIC solves for the Navier-Stokes equation including Coriolis force, optionally coupled with an induction equation for Magneto-Hydro Dynamics (MHD), a temperature (or entropy) equation and an equation for chemical composition under both the anelastic and the Boussinesq approximations.

Mapped Legendre Spectral Method Code (MLegS): code package based on a modernized and parallelized spectral method for vortical (swirling) flow simulations in an unbounded domain. An associated paper is Linear stability analysis of wake vortices by a spectral method using mapped Legendre functions, by Sangjoon Lee and Philip S. Marcus, Journal of Fluid Mechanics (2023).

MF-LBM: Portable, Scalable and High-performance Lattice Boltzmann Code for DNS of Flow in Porous Media, from LANL

MGLC: multi-GPU parallel implementation of LBM(Lattice Boltzmann Method), using OpenACC to accelerate codes on single GPU and MPI for inter-GPU communication

Multi-component Flow Code (MFC): parallel simulation software for multi-component, multi-phase, and bubbly flows, by Spencer Bryngelson et al. MicroFC is a mini-app for Baer-Nunziato-like models, interface capturing schemes, finite-volume WENO reconstruction, HLLC Riemann solvers, and large-scale OpenACC offloading of (multi-component) compressible fluid dynamics

Multi Grid Large Eddy Turbulence (mglet-base): incompressible Navier-Stokes flow solver, a subset of the commercial product MGLET from KM Turbulenz GmbH

Multi-order Approach to Calculating High-speed Linear aerodynamics (MachLine): modern, unstructured, subsonic/supersonic flow solver currently being developed by the AeroLab. It is a linear panel method based on the Prandtl-Glauert equation. Also MachUp, a Numerical Lifting-Line Algorithm

Navier_Stokes_Spectral_Method: Navier Stokes simulation using the spectral method, visualized with gtk-fortran, by Jules Minard

Nek5000: fast and scalable high-order solver for computational fluid dynamics. Applications span a wide range of fields, including fluid flow, thermal convection, combustion and magnetohydrodynamics.

NekIBM: implementation of Immersed Boundary Method for for exascale simulation of multiphase flow based on the Spectral Element Method Nek5000/CMTnek code, by Yunchao Yang

nekStab: toolbox based on Krylov methods for highly parallel global linear stability analysis of incompressible flow problems for Nek5000, with theoretical framework described in Krylov Methods for Large-Scale Dynamical Systems: Application in Fluid Dynamics, by R. A. S. Frantz, J.-Ch. Loiseau, J.-Ch. Robinet, Appl. Mech. Rev. May 2023, 75(3).

Nemoh: Boundary Element Methods (BEM) code dedicated to the computation of first order wave loads on offshore structures (added mass, radiation damping, diffraction forces). Typical use is estimation of dynamic response of floating structures or performance assessment of wave energy converters.

NGA2: high performance computing research library that provides a variety of finite volumes/finite difference solvers for typical fluid-related partial differential equations, by Olivier Desjardins and Austin Han

Non-HydrostaticWave Model (NHWAVE): three-dimensional shock-capturing model which solves the incompressible Navier-Stokes equations in terrain and surface-following sigma coordinates. The model predicts instantaneous surface elevation and 3D flow field and is capable of resolving coastal wave processes (shoaling, refraction, diffraction, breaking etc.) as well as tsunami wave generation by landslide.

NTUSTCFDLAB: code for 3D flow using projection method with FVM, by HSUAN221. Navier Stokes equations are solved for velocity and pressure fields.

nuwtun: adjoint code for 1-D and 2-D Euler equations are developed using automatic differentiation tool Tapenade, by cpraveen. A piecemeal approach is used in which the subroutines in the flow solver are differentiated individually and used in an adjoint iterative solver.

OFF: solve, numerically, the Navier-Stokes equations of fluid dynamics by means of Finite Volume technique, by szaghi and giacrossi

OpenMHD: one/two-dimensional magnetohydrodynamic (MHD) codes, by zenitani

osinco3d: code designed to solve the 3D Navier-Stokes equations for incompressible flow using a high-order finite difference method, using Chorin's projection method. by jojoledemago

O2-Project: framework for CFD oriented scientific code development in Modern Fortran, by kgpolitis

ParaTC: high order finite difference solver for simulations of turbidity currents with high parallel efficiency, by Zheng Gong

pencil-code: high-order finite-difference code for compressible hydrodynamic flows with magnetic fields and particles

phasta: Parallel Hierarchic Adaptive Stabilized Transient Analysis of compressible and incompressible Navier Stokes equations

PixelFlow: deals with incompressible fluids and implements the collocated grid Marker-and-Cell (MAC) method using a regular orthogonal grid. Associated paper: A novel approach for wall-boundary immersed flow simulation (proposal of modified Navier-Stokes equation), by Nobuyuki Oshima, Journal of Fluid Science and Technology (2023).

preCICE fortran-module: interface to preCICE, an open-source coupling library for partitioned multi-physics simulations, including, but not restricted to fluid-structure interaction and conjugate heat transfer simulations

PROFOIL: program for the inverse design of isolated airfoils, by Michael S. Selig

Propeller Panel Method (PROPAN): panel code for the calculation of steady and unsteady potential flow around foils, open and ducted propellers, and wind and marine current turbines. PROPAN was developed by MARETEC (Marine and Environmental Technology Research Centre) at Instituto Superior Técnico (IST), which belongs to Lisbon University.

ps3d: pseudo-spectral code for turbulent flows in 3D, associated with the paper The stability of inviscid Beltrami flow between parallel free-slip impermeable boundaries, by David Dritschel and Matthias Frey, Journal of Fluid Mechanics (2023)

pyAVL: stripped-down version by Josh Anibal of Mark Drela and Harold Youngren's famous Athena Vortex Lattice (AVL) code wrapped in python with f2py. This allows one to more easily conduct large parameter sweeps in AVL or to include AVL into a larger model.

ransfoil: console to simulate airflow around an airfoil based on RANS approach

Rayleigh - dynamo in spherical geometry: 3-D convection code designed for the study of dynamo behavior in spherical geometry. It evolves the incompressible and anelastic MHD equations in spherical geometry using a pseudo-spectral approach.

rbsolve: code for Rayleigh-Benard (natural convection) problem simulation with Boussinesq approximation. An associated paper is Generation of Large-Scale Winds in Horizontally Anisotropic Convection, by J. von Hardenberg et al., Phys. Rev. Lett. (2015).

rdshellmodel: Rathmann and Ditlevsen (2016) helical shell model of turbulence (http://arxiv.org/abs/1602.02553)

shyfem: System of HydrodYnamic Finite Element Modules

Simple-Fortran-DG: uses the Discontinuous Galerkin method to solve the 2D Euler Equation with the Isentropic Vortex initial value, by L1ssandra. The author has Freljord-CFD-arsenal and other CFD projects with Fortran code.

SIMS_MHT: numerical simulation of multibody suspensions of magnetic particles using Langevin and Stokesian Dynamics, optimized for magnetic hyperthermia simulations. Associated paper: [The influence of hydrodynamic effects on the complex susceptibility response of magnetic fluids undergoing oscillatory fields: New insights for magnetic hyperthermia], by Guimaraes, A. B. ; Cunha, F. R., and Gontijo, R. G., Physics of Fluids, v. 32, p. 012008-012008-17, 2020.

Smoothed Particle Hydrodynamics(SPH): uses code from the book Smooth Particle hydrodynamics - A Meshfree Particle Method as a starting point, by zoziha

SNaC: multi-block solver for massively parallel direct numerical simulations (DNS) of fluid flows, by p-costa and nscapin

Special Periodic Continuation Turbulence Solver (SPECTER): performs numerical integration in 3D space for a set of PDEs usually found in fluid dynamics, by Mauro Fontana and Pablo Mininni. A pseudo-spectral method is used to compute spatial derivatives, coupled with an adjustable order Runge-Kutta time stepping.

SPH_fractional: code for simulating fluids using the SPH integral viscoelastic method, associated with the paper Smoothed Particle Hydrodynamics simulations of integral multi-mode and fractional viscoelastic models, by Luca Santelli et al., Journal of Non-Newtonian Fluid Mechanics (2024)

Supersonic TuRbulEnt Accelerated navier stokes Solver (STREAMS): performs Direct Numerical Simulations of compressible turbulent flows in Cartesian geometry solving the unsteady, fully compressible Navier-Stokes equations for a perfect gas, by matteobernardini et al. Currently, three canonical wall-bounded flows can be simulated: compressible turbulent channel flow, compressible zero-pressure-gradient turbulent boundary layer, and supersonic oblique shock-wave/turbulent boundary-layer interaction.

Synthetic Eddy Method (SEM): code associated with paper Extended synthetic eddy method to generate inflow data for turbulent thermal boundary layer, by Geunwoo Oh et al., International Journal of Heat and Mass Transfer, 2019. A related project is Synthetic-Eddies by Bojan Niceno.

Synthetic-Eddy-Method-KCX2013: serial implementation by Akshay Patil of the Synthetic Eddy Method described in the paper Divergence-free turbulence inflow conditions for large-eddy simulations with incompressible flow solvers, by Yusik Kim et al., Computers & Fluids (2013).

Turbulent Flows (T-Flows): computational fluid dynamics program originally developed at Delft University of Technology, the Netherlands. It features second order accurate, unstructured, cell-centered, finite volume discretization of incompressible Navier-Stokes equations with heat transfer and species transport. It is written in Fortran 90 and uses Message Passing Interface (MPI) for parallel execution.

tlab: Tools to simulate and analyze turbulent flows in 2D and 3D configurations, from turbulencia. The numerical schemes are based on compact finite differences with structured meshes, where grid stretching allowed. Time advancement in based on Runge-Kutta schemes.

TM: full MHD code used for simulating the tearing mode instability in slab geometry, by victowne

UCNS3D: unstructured compressible CFD code

unified-bubble-theory: code associated with paper A unified theory for bubble dynamics, by A-Man Zhang et al., Physics of Fluids (2023)

uranos-gpu: code associated with paper URANOS: A GPU accelerated Navier-Stokes solver for compressible wall-bounded flows, by Francesco De Vanna et al., Computer Physics Communications (2023)

Xoptfoil: airfoil optimization code using the Xfoil aerodynamics engine, by montagdude and Geoff Sokoll

WABBIT: Wavelet Adaptive Block-Based solver for Interactions with Turbulence, from adaptive-cfd

WiRE-LES2: large-eddy simulation code written in CUDA Fortran for simulating atmospheric boundary layer flows, by Mou Lin and Tristan Revaz

Cryptography

Fortran77-Enigma: Enigma machine emulator in FORTRAN 77, by Barrett Otte

Frypto: cryptographic library by Fran Martinez Fadrique

Lucifer: Arthur Sorkin's variant of the Lucifer block cipher, a direct predecessor of DES, ported from FORTRAN IV to FORTRAN 77

sodium: Fortran bindings by Andre Smit for libsodium, a C library for encryption, decryption, signatures, password hashing, etc.

Databases

fodbc: interface to Open Database Connectivity (ODBC), by RainBarrel

fortran-lmdb: collection of interface bindings by interkosmos by the OpenLDAP Lightning Memory-Mapped Database (LMDB), a B-tree-based database management library modeled loosely on the BerkeleyDB API

fortran-mongo: MongoDB binding library for Fortran, by dongli

fortran-sqlite3: Fortran 2018 interface bindings to SQLite 3, by interkosmos

fortran-tcdb: Fortran 2008 interface bindings to Tokyo Cabinet, by interkosmos

fpq: modules with PostgreSQL (libpq) Fortran bindings, by Andre Smit

libpq-fortran: interface by ShinobuAmasaki to the PostgreSQL libpq C Library

Mariadb_connector_fortran: wrapper library for MariaDB-connector/C, by Vu Hoang Giang. It can be used to connect to MariaDB, MySQL, and Oracle databases.

SQLite for Fortran (sqliteff): thin wrapper around the SQLite library, by Brad Richardson. The sqliteff_* functions are effectively identical to the sqlite3_* functions that would be called from C, but with Fortran intrinsics and types.

Dates and Times

datetime: library for simple, time-zone-independent date and time management, by Patrizia Favaron

datetime-fortran: time and date manipulation facilities, by milancurcic

m_time: displays dates in a variety of formats and performs basic date and time computation, by urbanjost

time-f: wraps time.h of the C standard library, by 0382

Earth Science

1D3CSEM: one-dimensional (1D) three-component (3C) spectral element modeling (SEM) of seismic wave propagation in nonlinear media with pore-pressure effects, by Elif Oral, extending a code by Elise Delavaud

3D Magnetic Gradient Tensor Modeling at High Susceptibility (3D-MGTM-HS): code associated with the paper A FORTRAN Program to Model Magnetic Gradient Tensor at High Susceptibility Using Contraction Integral Equation Method, by Longwei Chen and Fang Ouyang, Minerals (2011)

Adjoint-state Traveltime Tomography (ATT_training): adjoint-state traveltime tomography (ATT) in the Cartesian coordinates. The details of the algorithm can be found at Tong, P. (2021). Adjoint-state traveltime tomography: Eikonal equation-based methods and application to the Anza area in southern California. Journal of Geophysical Research: Solid Earth, 126, e2021JB021818. https://doi.org/10.1029/2021JB021818.

Advanced Lake Biogeochemistry Model (ALBM): one-dimensional process-based lake biogeochemistry model that was developed by Zeli Tan to predict the response of lake thermal and carbon dynamics and water quality to environmental changes (Tan et al., 2015, 2017, 2018)

aerobulk: gathers state-of-the-art aerodynamic bulk formulae algorithms used to compute turbulent air-sea fluxes of momentum, heat and freshwater, by brodeau and einola

AGNI: 1D radiative-convective model for the atmospheres of hot terrestrial planets, in Fortran and Julia, by Harrison Nicholls

AmplitudeSourceLocation: package containing the Amplitude Source Location method using depth-dependent 1-D velocity structure and 3-D attenuation structure, relative source location method using seismic amplitudes, and relative source location method using arrival times of seismic waves. Associated paper: Ogiso, M. and K. Yomogida (2021), Estimation of Relative source locations from seismic amplitude: application to earthquakes and tremors at Meakandake volcano, eastern Hokkaido, Japan, Earth, Planets and Space, 73:29

A-New-BellHope: mirror of the original Fortran BELLHOP/BELLHOP3D underwater acoustics simulators, with numerical properties and robustness improved and bugs fixed. These changes were made in support of the multithreaded C++/CUDA version of BELLHOP/BELLHOP3D: bellhopcxx/bellhopcuda

AquaCrop: crop growth model developed by FAO’s Land and Water Division to address food security and assess the effect of the environment and management on crop production. AquaCrop simulates the yield response of herbaceous crops to water and is particularly well suited to conditions in which water is a key limiting factor in crop production.

Automatic Numerical Tsunami Initial conditions: on-the-Fly rupture Areas and earthquake Scenarios (ANTI-FASc): software enabling the fast computation of large ensembles of slip distributions on complex non-planar fault interfaces such as the subducting plates. An associated paper is Probabilistic tsunami forecasting for early warning, by J. Selva et al., Nature Communications (2021).

Anura3D_OpenSource: numerical modelling of large deformations and soil–water–structure interaction using the material point method (MPM)

Aquatic EcoDnamics (AED) Suite: collection of community-driven libraries of modules and algorithms for simulation of "aquatic ecodynamics" - water quality, aquatic biogeochemsitry, biotic habitat and aquatic ecosystem dynamics. Liaed-water is the core library of water biochemistry modules, libaed-bentic is a collection of benthic layer modules, and libaed-demo is a set of examples for developing modules.

Aquatic Optics Monte Carlo Model (AOMC): simulates the propagation of light in an optically shallow, vertically heterogeneous aquatic medium, by Manny Gimond

AtChem2: modelling tool for atmospheric chemistry. It is primarily designed to use the Master Chemical Mechanism (MCM), but it can be used with any general set of chemical reactions.

atmos: package containing two atmospheric models, along with scripts to couple them together, from VirtualPlanetaryLaboratory

AxiSEM: parallel spectral-element method to solve 3D wave propagation in a sphere with axisymmetric or spherically symmetric visco-elastic, acoustic, anisotropic structures, by Martin van Driel et al.

axitra: numerical modelling of seismic wave propagation in 3D with flat layer models, associated with the following paper: F. Cotton and Coutant O., 1997, Dynamic stress variations due to shear faults in a plane-layered medium, GEOPHYSICAL JOURNAL INTERNATIONAL,Vol 128, 676-688

beamforming: seismo-acoustic array processing routines, by Jelle Assink. An associated paper is Fast Frequency‐Wavenumber Analysis and Fisher Signal Detection in Real‐Time Infrasonic Array Data Processing (1971), by Smart, E. and Flinn, E. A., Geophysical Journal of the Royal Astronomical Society, 26: 279-284.

Bergen Layered Ocean Model (BLOM): ocean component of the Norwegian Earth System Model. Includes the ocean biogeochemistry model iHAMOCC.

Biome Ecological strategy simulator (BiomeESS): model in which vegetation is represented as plant functional types sampled from high dimensional spaces of combined plant traits that can consistently coexist in plant individuals. Reference: Weng, E., Dybzinski, R., Farrior, C. E., and Pacala, S. W.: "Competition alters predicted forest carbon cycle responses to nitrogen availability and elevated CO2: simulations using an explicitly competitive, game-theoretic vegetation demographic model", Biogeosciences, 16, 4577–4599, https://doi.org/10.5194/bg-16-4577-2019, 2019.

Calypso: performs magnetohydrodynamics (MHD) simulation in a rotating spherical shell, modeled as Boussinesq fluid driven by thermal or compositional buoyancy, by Hiro Matsui

caneill-et-al-JPO-nemo-transition-zone: code associated with paper Caneill, R., Roquet, F., Madec, G., and Nycander, J. (2022). The polar transition from alpha to beta regions set by a surface buoyancy flux inversion., Journal of Physical Oceanography.

Catchment-based Macro-scale Floodplain (CaMa-Flood): simulates the hydrodynamics in continental-scale rivers, from global-hydrodynamic. The entire river networks of the world are discretized to the hydrological units named unit-catchments for achieving efficient flow computation at the global scale.

CDFTOOLS: analysis and diagnostics on NEMO ocean model output, from meom-group

cdss-app-statemod-fortran: StateMod water allocation model, which is part of Colorado's Decision Support Systems (CDSS)

celltrack: finds continuous cells in 2D fields and tracks them in time. The primary use case is rain cell tracking. Related paper: Lochbihler, K., Lenderink, G., and Siebesma, A. P. (2017), The spatial extent of rainfall events and its relation to precipitation scaling, Geophys. Res. Lett., 44, 8629– 8636, doi:10.1002/2017GL074857.

CE-QUAL-W2: two‐dimensional (2D), longitudinal/vertical, hydrodynamic water quality (WQ) model, by TSteissberg and hsteissberg. Because the model assumes lateral homogeneity, it is especially suited for relatively long and narrow waterbodies exhibiting longitudinal and vertical water quality gradients.

CFMIP (Cloud Feedbacks Model Intercomparison Project) Observation Simulator Package (COSP): takes the models representation of the atmosphere and simulates the retrievals for several passive (ISCCP, MISR and MODIS) and active (CloudSat (radar) and CALIPSO (lidar)) sensors

cgfd-lab: demonstrations for teaching computational geophysical fluid dynamics, by dongli. Has code for classic or practical advection schemes: FTCS, Upwind, Beam-Warming, Lax-Wendroff, Fromm, Leap-frog, Crank-Nicolson, TSPAS, MPDATA, WENO, FFSL, Semi-Lagrangian.

Chemistry Across Multiple Phases: CAMP: multi-phase chemistry treatment for atmospheric models. Reference: M. Dawson, C. Guzman, J. H. Curtis, M. Acosta, S. Zhu, D. Dabdub, A. Conley, M. West, N. Riemer, and O. Jorba (2021), Chemistry Across Multiple Phases (CAMP) version 1.0: An Integrated multi-phase chemistry model, in preparation

CICE Consortium sea-ice model: computationally efficient model for simulating the growth, melting, and movement of polar sea ice

climber-x: comprehensive fast Earth System Model, designed to simulate the evolution of the Earth system on time scales ranging from decades to glacial-interglacial cycles. An associated paper is Glacial inception through rapid ice area increase driven by albedo and vegetation feedbacks, by Matteo Willeit et al., Climate of the Past (2024).

CLM-Microbe: modeling work within the Ecological Modeling and Integration Laboratory at SDSU. One publication is Substrate and environmental controls on microbial assimilation of soil organic carbon: a framework for Earth system models.

ClusterIn: add-on for aerosol microphysics models for explicitly simulating the dynamics of particle formation from vapors. Associated paper: Role of gas–molecular cluster–aerosol dynamics in atmospheric new-particle formation, by Tinja Olenius & Pontus Roldin, Scientific Reports volume 12, Article number: 10135 (2022).

cms2d: coastal modeling system that couples a wave, circulation, and morphology model together to get better predictions in the near-shore, by Mitchell Brown et al.

CoastalApp: modeling framework for coastal applications and regional forecasts, from NOAA's Office of Coast Survey. It consists of coupled modeling components that link the atmospheric, ocean and terrestrial realms under one common framework.

Community Atmosphere Biosphere Land Exchange model (CABLE): land surface model, used to calculate the fluxes of momentum, energy, water and carbon between the land surface and the atmosphere and to model the major biogeochemical cycles of the land ecosystem, by Claire Carouge et al.

Community Data Models for Earth Prediction Systems (CDEPS): NUOPC-compliant data components along with ESMF-based share code that enables new capabilities in selectively removing feedbacks in coupled model systems

Community Ice Sheet Model (CISM): land ice model designed to be used as part of an Earth-system model or as a stand-alone model

Community Multiscale Air Quality Model (CMAQ) of US EPA: combines current knowledge in atmospheric science and air quality modeling with multi-processor computing techniques in an open-source framework to deliver fast, technically sound estimates of ozone, particulates, toxics, and acid deposition.

ComPASS: open, evolutive platform for hydrothermal modeling, by Simon-Lopez et al. It implements state of the art numerical scheme to discretize multiphase Darcean flows on generic unstructured meshes.

ConductivitySolver: code associated with paper Validation suite for numerical solvers calculating effective thermal conductivity in porous media, by Mirko Siegert et al., Journal of Applied Geophysics (2021)

ConMan: finite element program for the solution of the equations of incompressible, infinite-Prandtl number convection in two dimensions, by Scott King et al.

coordinates: manage grids and arbitrary sets of points, including interpolation and mapping between different coordinate systems, by alex-robinson. It also contains several helper modules that are useful generally for the manipulation of sets of points and grids.

CoulombAnalysis: computes Coulomb stress changes induced by earthquakes, by jjwangw

Coupled-Ocean-Atmosphere-Wave-Sediment Transport (COAWST) Modeling System: combines many sophisticated systems that each provide relative earth-system components necessary to investigate the dynamics of coastal storm impacts. Specifically, the COAWST Modeling System includes an ocean component—Regional Ocean Modeling System (ROMS); atmosphere component—Weather Research and Forecast Model (WRF), hydrology component- WRF_Hydro; wave components—Simulating Waves Nearshore (SWAN), WAVEWATCHIII, and InWave; a sediment component—the USGS Community Sediment Models; and a sea ice model.

Coupled Water Balance and Vegetation Optimality Model (VOM): predicts vegetation water use based on meteorological information, soils and topography only, without the need for prescribing site-specific vegetation properties or calibration against observed fluxes, by Stan Schymanski et al.

cshore: predicts beach evolution over the nearshore region, from US Army Engineer Research and Development Center. The combined wave and current model operates under the assumption of longshore uniformity and includes the effects of a wave roller and quadratic bottom shear stress.

DALEC-Grass: development of the Data Assimilation Linked Ecosystem Carbon (DALEC) model that simulates carbon (C) dynamics in managed grassland ecosystems, from the Global Change Ecology Lab

Data Interpolating Empirical Orthogonal Functions (DINEOF): EOF-based method to fill in missing data from geophysical fields, such as clouds in sea surface temperature. For more information on how DINEOF works, please refer to Alvera-Azcarate et al (2005) and Beckers and Rixen (2003).

Data-Interpolating Variational Analysis (DIVA): spatial interpolation of data (analysis) in an optimal way, comparable to optimal interpolation (OI), by Sylvain Watelet et al. In comparison to OI, it takes into account coastlines, sub-basins and advection.

DC: code associated with paper Downward continuation of marine seismic reflection data: an undervalued tool to improve velocity models, by Clara Estela Jimenez-Tejero et al., Geophysical Journal International (2022)

DC3D.f90: calculates displacement and its space derivative at an arbitrary point on the surface or inside of the semi-infinite medium due to a point source (DC3D0) or a finite rectangular fault (DC3D) based on the formulation by Okada (1992) [Bull. Seism. Soc. Am., 82, 1018-1040]. Translated to free source form by Takuya Miyashita.

D-Claw: numerical software for modeling granular-fluid flows. It is built on top of Clawpack (clawpack.org), and is an extension and generalization of the shallow-water code GeoClaw (geoclaw.org), which includes algorithms for general shallow earth-surface flows.

defmod-swpc: fault rupture (defmod) and wave propagation (swpc), by Chunfang

dep: Iowa State University Daily (Soil) Erosion Project

Decision Support System for Agrotechnology Transfer Cropping System Model (dssat-csm-os): crop simulation models for over 42 crops. The crop simulation models simulate growth, development and yield as a function of the soil-plant-atmosphere dynamics.

Diagenetic_model_LHeureux_2018: code by Johannes Hidding et al. for the model of the paper Diagenetic Self-Organization and Stochastic Resonance in a Model of Limestone-Marl Sequences, by Ivan L'Heureux, Geofluids (2018)

DiallelX: approximates Network Cross-Correlation coefficients (NCCs) among multiple continuous records and template waveforms observed at multiple seismic stations, by Shiro Hirano. The results, relatively less accurate but sufficient to find new seismic events, are obtained several-fold faster than a conventional scheme.

domain-tools: code and tools to edit and manipulate ocean model grids and topographies, from COSIMA

DSM Kernel Suite: calculates 3D finite frequency Fréchet sensitivity kernels (or 3D waveform partial derivatives) for 1D reference Earth models using Direct Solution Method, by Nobuaki Fuji et al. It consists of forward and back propagated strain Green's function calculation in a 2D plane, cross correlations of forward and back propagated wavefields to obtain sensitivity kernels.

DSMsynTI-mpi: software for computing synthetic seismograms in spherically symmetric, transversely isotropic (TI) media using the Direct Solution Method (DSM), from the Global Seismology Group of the University of Tokyo. An associated paper is Complete synthetic seismograms up to 2 Hz for transversely isotropic spherically symmetric media, by Kenji Kawai et al., Geophysical Journal International (2006).

Dynamically Simple Model of Atmospheric Chemical Complexity (DSMACC): tropospheric chemistry box model designed to help understand the composition of the troposphere in a flexible and friendly manner. It is written to address a range of problems ranging from calculating the expected concentrations of atmospheric radicals to comparing chemistry schemes.

Earth_ABL_model: E-epsilon-tau turbulence closure model for the atmospheric boundary layer of Earth, by Einar Orn Olason et al.

Earth System Modeling Framework (ESMF): suite of software tools for developing high-performance, multi-component Earth science modeling applications, by Gerhard Theurich et al.

ECCOv4-Configurations: documentation and model configuration files for official releases of the ECCO version 4 ocean and sea-ice state estimates, by Ou Wang et al. Model configuration files allow users to reproduce the state estimate or conduct new simulation experiments.

EcoSLIM: Lagrangian, particle-tracking code that simulates advective and diffusive movement of water parcels, by Reed Maxwell et al. This code can be used to simulate age, diagnose travel times, source water composition and flowpaths.

Ecosystem Demography Biosphere Model (ED2): integrated terrestrial biosphere model incorporating hydrology, land-surface biophysics, vegetation dynamics, and soil carbon and nitrogen biogeochemistry

EddyPro: processes eddy covariance data, by LI‑COR Biosciences. It computes fluxes of water vapor (evapotranspiration), carbon dioxide, methane, other trace gases, and energy with the Eddy Covariance method.

elfe3D: 3D forward modelling code that can simulate electric and magnetic field responses from frequency-domain controlled-source electromagnetic setups, associated with the paper Efficient goal-oriented mesh refinement in 3-D finite-element modelling adapted for controlled source electromagnetic surveys, by Paula Rulff et al., Geophysical Journal International (2021)

Environmental Fluid Dynamics Code (EFDC+): multifunctional surface water modeling engine that includes hydrodynamic, sediment-contaminant, and eutrophication components designed to simulate aquatic systems in one, two, and three dimensions

Eulerian Level set Model of FIRE Spread (ELMFIRE): operational wildland fire spread model, by Chris Lautenberger et al. Some of its common applications include forecasting spread of fires in real time, reconstructing spread of historical fires, quantifying landscape-scale potential fire behavior potential, and estimating annual burn probability and fire severity

EWSMod-2D: code for modeling 2D elastic-wave sensitivity propagation and computing the spatial distribution of elastic-wave sensitivity energies in a heterogeneous model, which can be used for optimal design of time-lapse seismic monitoring surveys. A related book chapter is Elastic-Wave Sensitivity Propagation for Optimal Time-Lapse Seismic Survey Design, by Kai Gao et al., from the book Geophysical Monitoring for Geologic Carbon Storage (2022).

exascale Subsurface Transport Over Multiple Phases (eSTOMP-WR): highly scalable (parallel), general-purpose tool for simulating subsurface flow and reactive transport in variably saturated geologic media, from Pacific Northwest National Laboratory (PNNL)

EXSIM: stochastic finite-fault program, as modified by Karen Assatourians and Gail Atkinson. Associated paper: Stochastic Finite-Fault Modeling Based on a Dynamic Corner Frequency (2005), Bulletin of the Seismological Society of America

External Drift Kriging (EDK): program from the Helmholtz Centre for Environmental Research. An associated paper is Zink, M., R. Kumar, M. Cuntz, and L. Samaniego (2017), A high-resolution dataset of water fluxes and states for Germany accounting for parametric uncertainty, Hydrol. Earth Syst. Sci., 21(3), 1769–1790, doi:10.5194/hess-21-1769-2017.

EQdyna: parallel finite element software to simulate earthquake spontaneous dynamic rupture, seismic wave propagation and high frequency deterministic ground motions, by Dunyu Liu. It focuses on simulating earthquakes on geometrically complex fault systems with other heterogeneities in mind.

European Regional Seas Ecosystem Model (ERSEM): marine ecosystem model that describes the biogeochemical cycling of carbon, nitrogen, phosphorus, silicon, oxygen and iron through pelagic and benthic ecosystems.

FastIsostasy: model that regionally computes the glacial isostatic adjustment (GIA), as described in Swierczek-Jereczek et al. (2024). It approximates the gravitational response, accounts for the resulting heterogeneity of the sea-surface height and computes the evolution of masks (continent, ocean, floating ice, grounded ice), as well as the load anomalies applied upon the solid Earth.

Fast Shallow Landslide Assessment Model (fslam): applies the infinite slope theory at regional scale to identify potentially unstable areas, by Marcel Hürlimann and Vicente Medina, part of the SMuCPhy (Slope mass-wasting under climate change) project

fastscapelib-fortran: Fortran (+ Python bindings) library of efficient algorithms for landscape evolution modeling, by Benoit Bovy et al.

fd3d_tsn_pt: earthquake dynamic source inversion by parallel tempering, by fgallovic and valelu

FE-Project: library for dynamical cores of atmosphere and ocean models with discontinuous Galerkin finite element method, by ywkawai

Finite Element Heat and Mass Transfer Code: FEHM: simulates groundwater and contaminant flow and transport in deep and shallow, fractured and un-fractured porous media throughout the US DOE complex. FEHM has been used in projects of national interest including Environmental Remediation of the Nevada Test Site, the LANL Groundwater Protection Program, geologic CO2 sequestration, Enhanced Geothermal Energy (EGS) programs, Oil and Gas production, Nuclear Waste Isolation, and Arctic Permafrost.

flexwin: automates the time-window selection problem for seismologists, Alessia Maggi. It operates on pairs of observed and synthetic single component seismograms, defining windows that cover as much of a given seismogram as possible, while avoiding portions of the waveform that are dominated by noise.

FMTT_Parallel: parallel version of FMTT: Fast Marching Teleseismic Tomography, from nqdu

ForRF: time iterative deconvolution of receiver functions, by Mijian Xu, obtaining results close to Seispy

fortrangis: collection of Fortran interfaces to some common Open Source GIS (Geographic Information System) software libraries, plus some more Fortran-specific tools, from ARPA-SIMC. The libraries interfaced at the moment are Shapelib, GDAL, Proj and ReadOSM.

Framework for Aquatic Biogeochemical Models (FABM): Fortran 2003 programming framework for biogeochemical models of marine and freshwater systems

Functionally Assembled Terrestrial Ecosystem Simulator (FATES): numerical terrestrial ecosystem model from NGEET

FUNWAVE-TVD: Total Variation Diminishing (TVD) version of the fully nonlinear Boussinesq wave model (FUNWAVE) developed by Shi et al. (2012), by fengyanshi

fwin: module for reading seismic waveform data in WIN and WIN32 formats, by Takuto Maeda

GCHP: global 3-D model of atmospheric chemistry driven by meteorological input from the Goddard Earth Observing System (GEOS) of the NASA Global Modeling and Assimilation Office, from geoschem

gemini3d: ionospheric fluid electrodynamic model

Genetic-Algorithm-for-Causeway-Modification: prototypes a genetic algorithm (GA) coupled to a numerical estuarine circulation model of Old Tampa Bay, FL (OTB), by Steven D. Meyers and Mark E. Luther. The GA is designed to generate modifications (cut-throughs) of causeways in OTB and rank them based on their impact on modeled hydrodynamic flushing.

General Ocean Turbulence Model: one-dimensional water column model for marine and limnological applications. It is coupled to a choice of traditional as well as state-of-the-art parameterisations for vertical turbulent mixing.

geoclaw: specialized version of some Clawpack and AMRClaw routines that have been modified to work well for certain geophysical flow problems. Currently the focus is on 2d depth-averaged shallow water equations for flow over varying topography.

geoflac: code for lithospheric scale geodynamics, by Eh Tan et al.

geotiff-fortran: GeoTIFF reader module, from CNEA-AQ

GIMPM-SSA-Damage: Generalized Interpolation Material Point Method for the Shallow Shelf Approximation of ice flow with Damage, by Alex Huth.

ginette: model for saturated-unsaturated, variable-density ground-water flow with solute or energy transport, by agnes-riviere et al. It is a 2-D variably saturated groundwater flow model with integrated 1-D surface flow for the stream.

Global Ionosphere Thermosphere Model (GITM): 3D model of the upper atmosphere, by Aaron Ridley et al. GITM solves for the coupled continuity, momentum and energy equations of the neutrals and ions.

GOCART: aerosol model including process library and framework interfaces (MAPL, NUOPC, and CCPP), from Goddard Earth Observing System - Earth System Modeling

graded: Python and Fortran programs for evaluating the flow solution to a borehole in a gradent material, associated with the paper Generalized Solution for Double-Porosity Flow Through a Graded Excavation Damaged Zone, by Kristopher L. Kuhlman, Mathematical Geosciences (2024)

gravity-modelling-with-polynomial-density: 3D Large-scale Gravitational Modelling Based on Tesseroids with a Polynomial Density of Arbitrary Degree in depth, by Fang Ouyang and Longwei Chen

gravmod3d: 3D forward modeling of bodies discretized by rectangular prisms with parabolic density contrast, an implementation by Oscar Mojica of the three-dimensional gravity modeling with parabolic density contrast presented in the paper 3-D forward gravity modeling of basement interfaces above which the density contrast varies continuously with depth by V. Chakravarthi et al., Computers & Geosciences (2002)

Grid-point Multiple-Conservation dynamical cORE (GMCORE): dynamical core for solving geophysical fluid equations on the sphere with conservative finite difference methods, by Li Dong and Jianghao Li

GR4-StateSpace: state-space version of a lumped rainfall-runoff model. Associated paper: Santos, L., Thirel, G., and Perrin, C., (2018), Continuous state-space representation of a bucket-type rainfall-runoff model: a case study with the GR4 model using state-space GR4 (version 1.0), Geosci. Model Dev., 11, 1591-1605

GrowClust: program for the relative relocation of earthquake hypocenters based on waveform cross-correlation data, by dttrugman and sean0921

GROWTH-23: integrated code for inversion of complete Bouguer gravity anomaly or temporal gravity changes, by Jose Fernandez

GROWTH_3.0: 3-D gravity inversion tool based on exploration of model possibilities. Associated paper: Camacho, A.G. and Fernandez, J. (2019). Modeling 3D free-geometry volumetric sources associated to geological and anthropogenic hazards from space and terrestrial geodetic data. Remote Sens., 11(17), 2042
GSFLOW: coupled Groundwater and Surface-water FLOW model based on the integration of the USGS Precipitation-Runoff Modeling System (PRMS-V) and the USGS Modular Groundwater Flow Model (MODFLOW-2005 and MODFLOW-NWT), by Steve Regan et al.

GSW-Fortran: Gibbs-SeaWater Oceanographic Toolbox in Fortran, by Glenn Hyland et al.

gufm1-webservice: four centuries of geomagnetic secular variation from historical records. This Fortran-backed webservice by Martin Rehfeld provides an interface to the gufm1 model as published by Andrew Jackson, Art R. T. Jonkers and Matthew R. Walker.

Halfspace deformation (hdef): forward calculation of displacements, strains, and stresses in an elastic half-space. The sources are fault slip models, using the solutions derived in Okada (1992) and in Meade (2007).

Harmonized Emissions Component (HEMCO): computing (atmospheric) emissions from different sources, regions, and species on a user-defined grid, from geoschem. It can combine, overlay, and update a set of data inventories ('base emissions') and scale factors, as specified by the user through the HEMCO configuration file.

hashwrap: Python wrapper by Mike Hagerty of HASHv1.2 Fortran library. An associated paper is Hardebeck, Jeanne L. and Peter M. Shearer, Using S/P Amplitude Ratios to Constrain the Focal Mechanisms of Small Earthquakes, Bulletin of the Seismological Society of America, 93, 2434-2444, (2003).

HAZ: Probabilistic Seismic Hazard Analysis, by Norm Abrahamson

hbi: multi-dimensional earthquake cycle simulation code based on Boundary Element Method with H-matrices, associated with the paper by So Ozawa, Akihiro Ida, Tetsuya Hoshino, Ryosuke Ando (2023), Large-scale earthquake sequence simulations of 3D geometrically complex faults using the boundary element method accelerated by lattice H-matrices, Geophysical Journal International,232 (3), 1471-1481

Heavy-review: calculates the change in gravity caused by the change in groundwater storage as predicted by a MODFLOW groundwater-flow model, by Jeff Kennedy. Gravity change is calculated relative to the initial time step at user-specified locations (e.g., measurement locations).

HOS-ocean: High-Order Spectral method for oceanic simulations, by gducrozet and Gjacquenot. Also HOS-NWT, a Numerical Wave Tank based on the High-Order Spectral (HOS) method, dedicated to the generation and propagation of highly non-linear wave fields in wave basins with arbitrary constant depth.

HYbrid Coordinate Ocean Model (HYCOM): data-assimilative hybrid isopycnal-sigma-pressure (generalized) coordinate ocean model, with objectives of three-dimensional depiction of the ocean state at fine resolution in real time, provision of boundary conditions for coastal and regional models, and provision of oceanic boundary conditions for a global coupled ocean-atmosphere prediction model

HypoDD: program package associated with paper A Double-Difference Earthquake Location Algorithm: Method and Application to the Northern Hayward Fault, California, by Felix Waldhauser and William L. Ellsworth, Bulletin of the Seismological Society of America (2000)

hypoellipse: determines hypocenters and magnitudes of near regional earthquakes and the ellipsoids that enclose the 68-percent confidence volumes of the computed hypocenters. HYPOELLIPSE was developed to meet the needs of U.S. Geological Survey (USGS) scientists studying crustal and sub-crustal earthquakes recorded by a sparse regional seismograph network.

HypoTremorMCMC: associated preprint: Locating tectonic tremors with uncertainty estimates: Time- and amplitude-difference optimization, wave propagation-based quality control, and Bayesian inversion(2023) by Takeshi Akuhara et al.

IBMlib: individual-based modelling framework able to assess marine habitat connectivity. Eggs/larvae/juvenile/adults may be modelled in order to analyze recruitment impact of marine protected areas.

ICM_Hydro: code corresponding to paper "Ecohydrology component of Louisiana’s 2012 Coastal Master Plan: mass-balance compartment model"

IF-77 Air-to-Ground Propagation Model (Gierhart-Johnson): propagation model from the Federal Aviation Administration applicable to air/ground, air/air, ground/satellite, and air/satellite paths. It can also be used for ground/ground paths that are line-of-sight or smooth earth.

illumina: Monte Carlo based radiative transfer model aimed to simulate the artificial light at night propagation into the environment, by Alexandre Simoneau et al. The model typically uses satellite data and locally acquired data as inputs.

IMEX_SfloW2D: models shallow water granular flows over digital elevation models (DEMs) of natural terrain, with the friction forces described by the Voellmy-Salm rheology, by Mattia de' Michieli Vitturi. The system is described by an hyperbolic system of partial differential equations with relaxation and source terms.

Implicit Earth system Model of Intermediate Complexity (I-EMIC): parallel Earth system model that allows the use of large-scale dynamical systems techniques, by Erik Mulder et al. The term 'implicit' refers to this model's main design feature: all model equations and constraints are solved simultaneously.

insol: calculates paleo and future daily insolation at the top of the atmosphere, by Alexander Robinson

International Geomagnetic Reference Field (igrf): standard mathematical description of the Earth's main magnetic field, used widely in studies of the Earth's deep interior, crust, ionosphere, and magnetosphere, callable from Python and Matlab

ioapi-3.2: provides Fortran and C APIs for environmental model data access together with related utility routines and tools for analysis and manipulation of data stored by way of that API, by cjcoats

iRainSnowHydrov1.0: distributed integrated rainfall-runoff and snowmelt-runoff simulation model for alpine watersheds, by Yuning Luo et al.

iron-magma: calculates the redox state of iron in magmas, by Roberto Moretti and Charles Le Losq. Also sulfur-magma, associated with the paper Moretti, R., & Ottonello, G. (2005). Solubility and speciation of sulfur in silicate melts: The Conjugated Toop-Samis-Flood-Grjotheim (CTSFG) model. Geochimica et Cosmochimica Acta and water-speciation-magma associated with paper Moretti, R., Le Losq, C., and Neuville, D.R. (2014) The amphoteric behavior of water in silicate melts from the point of view of their ionic-polymeric constitution. Chemical Geology

Isca: framework for the idealized modelling of the global circulation of planetary atmospheres at varying levels of complexity and realism, from the University of Exeter. The framework is an outgrowth of models from GFDL designed for Earth's atmosphere, but it may readily be extended into other planetary regimes.

isostasy: stand-alone model of regional glacial isostatic adjustment, by Alex Robinson and Jan Swierczek-Jereczek

Ice Shelf/Ocean Fluid and Thermodynamics (ISOFT): object-oriented, extensible framework with which to model glacial flow using modern Fortran, by Chris MacMackin. Though developed for ice shelves, it could in principle be modified to simulated grounded ice dynamics as well.

JAGURS: tsunami simulation code solving linear/nonlinear long-wave/Boussinesq equations with/without effects of elastic deformation of the Earth due to tsunami load and vertical profile of seawater density stratification. This code was parallelized by using OpenMP and MPI.

JDSurfg: Joint Inversion of Direct Surface Wave Tomography and Bouguer Gravity, by nqdu

Line-By-Line Radiative Transfer Model(LBLRTM): accurate and efficient line-by-line radiative transfer model derived from the Fast Atmospheric Signature Code (FASCODE), from AER-RC. LBLRTM has been, and continues to be, extensively validated against atmospheric radiance spectra from the ultraviolet to the sub-millimeter.

LinSlipInv: Linear multi time-window earthquake slip inversion with k^-2 smoothing, by Frantisek Gallovic. Suite of codes for linear slip inversions and resolution analysis.

LISF: The Land Information System (LIS) from NASA-LIS is a software framework for high performance terrestrial hydrology modeling and data assimilation developed with the goal of integrating satellite and ground-based observational data products and advanced modeling techniques to produce optimal fields of land surface states and fluxes.

loam-chart: takes in clay and sand percentage and determines soil type based on the soil texture triangle, by ysogg and abusch26. It is an application of the crossing number raycast algorithm.

Los Alamos TravelTime package based on Eikonal equation (LATTE): package for traveltime computation, tomography and source location in 2D/3D isotropic acoustic/elastic media, by Kai Gao and Ting Chen

LTRANS_microplastics: code associated with paper J.-H. Liang et al., Including the Effects of Subsurface Currents on Buoyant Particles in Lagrangian Particle Tracking Models: Model Development and its Application to the Study of Riverborne Plastics over the Louisiana/Texas Shelf. Ocean Modelling (2021).

Luco-Apsel-Chen Generalized Reflection/Transmission coefficients Method (LAC-GRTM): synthetic seismogram calculation for a multi-layered half-space, by Tche Liu. An associated paper is Implementation of efficient low-storage techniques for 3-D seismic simulation using the curved grid finite-difference method, by Wenqiang Wang et al., Geophysical Journal International (2023).

LongWave Propagation Code (LWPC): code to generate geographical maps of signal availability for coverage analysis, from the Space and Naval Warfare Systems Command. SuperLWPC is a graphical user interface of the code for investigating ionospheric D-region parameters, by Ahmed Ammar.

MAIZSIM: mechanistic model of maize growth, development and yield, written in C++ (crop) and Fortran (soil). The model is interfaced with 2DSOIL, a two dimensional simulator of soil water and heat movement, and solute transport.

MANDIFORE_modeling: Forestry x climate scenarios for NSF-funded MANDIFORE project, by Christy Rollinson and Lucien Fitzpatrick

Maptran 3D: Modern Fortran 3D coordinate conversions for geospace ecef enu eci, from geospace-code. Similar to Python PyMap3D and Matlab Matmap3d.

Marine Biogeochemistry Library (MARBL): software package to be used by ocean general circulation models

MCDisp: surface wave dispersion curve inversion using Monte Carlo sampling. The 1d modal approximation code used to compute dispersion curves is from Computer Programs in Seismology. This package by xin2zhang provides a Python interface for the original Fortran code.

mcm: H2020 project with the purpose of developing a model of the whole atmosphere by means of blending the Unified Model (UM) from the MetOffice in the UK for the atmosphere (0 to 120 km) and the Drag Temperature Model (DTM2020) from the Centre National d'Études Spatiales (CNES) in France covering the thermosphere, from 120 to 1500 km

MCTomo: 3D Monte Carlo tomography package using reversible jump McMC method and 3D Voronoi tessellation, by Xin Zhang and Andrew Curtis

MEP-SidersPond: maximum entropy production (MEP) model to describe microbial biogeochemistry in Siders Pond, MA, associated with paper Using maximum entropy production to describe microbial biogeochemistry over time and space in a meromictic pond, by Vallino, J.J., and Huber, J.A., Frontiers in Environmental Science (2018). Also Maximum Entropy Production - Advancing Theory in Biology (MEP-ATB).

Meso-NH: non-hydrostatic mesoscale atmospheric model of the French research community

MN Earth System Model for Ocean Biogeochemistry (MESMO): Associated paper: Matsumoto, K., Tokos, K. S., Price, A. R., & Cox, S. J. (2008). First description of the Minnesota Earth System Model for Ocean biogeochemistry (MESMO 1.0). Geoscientific Model Development, 1(1), 1–15.

mesoscale Hydrological Model (mHM): mHM is based on accepted hydrological conceptualizations and is able to reproduce as accurately as possible not only observed discharge hydrographs at any point within a basin but also the distribution of soil moisture among other state variables and fluxes.

Millennial: code related to 2018 paper "The millennial model: in search of measurable pools and transformations for modeling soil carbon in the new century", by Abramoff, R. et al., Biogeochemistry, 137(1-2), 51-71. doi:https://doi.org/10.1007/s10533-017-0409-7

MINEOS: surface wave phase velocity and kernel calculations, by Colleen Dalton and Zach Eilon

mizuRoute: post-processor of runoff output from a hydrologic model or Land surface model to produce streamflow estimates in the river network provided by a user, from NCAR. The tool was developed for the large scale, network based river routing (e.g., river network over contiguous United States), but works for gridded river network as well.

MODFLOW 6: USGS Modular Hydrologic Model: accurately, reliably, and efficiently simulates groundwater flow. With time, growing interest in surface and groundwater interactions, local refinement with nested and unstructured grids, karst groundwater flow, solute transport, and saltwater intrusion, has led to the development of numerous MODFLOW versions.

modpath-rw: Random Walk Particle Tracking code for solute transport in heterogeneous aquifers, extending MODPATH-v7, by rodrperezi and dfg1973

MOHID - Water Modelling System: modular finite volumes water-modelling system written in Fortran 95 using an Object-oriented programming philosophy, integrating diverse mathematical models and supporting graphical user interfaces that manage all the pre- and post-processing

MOM6: Modular Ocean Model, from NOAA-GFDL

MTRVI: 3D inversion code for MT (magnetotelluric) data, which can achieve uncertainty quantification of the result using Reparameterized Variational Inference (RVI) and the conventional inversion with gradient filtering regularization. Associated paper: Gradient filtering regularization for 3-D MT inversion based on unstructured tetrahedral discretization, by Zhihao Rong, Geophysical Journal International (2023).

multifluids_icferst: reservoir simulator based on DCVFEM, dynamic mesh optimisation and surface-based modelling. An associated paper is Modelling saline intrusion using dynamic mesh optimization with parallel processing, by A. Hamzehloo et al., Advances in Water Resources, v164, (2022).

Multicomponent Aerosol FORmation (mafor): Lagrangian type sectional aerosol box model which includes gas phase and aqueous phase chemistry in addition to aerosol dynamics. The model simultaneously solves the time evolution of both the particle number and the mass concentrations of aerosol components in each size section.

Multi-Physics Problem (MPP): solves biophysics problems relevant to global land surface models (LSMs). Associated paper: Bisht, G., Riley, W. J., Hammond, G. E., and Lorenzetti, D. M., Development and evaluation of a variably saturated flow model in the global E3SM Land Model (ELM) version 1.0, Geosci. Model Dev., 11, 4085-4102, 2018

NanoFASE: multimedia spatiotemporal model of nanomaterial fate, speciation and bio-uptake, by Sam Harrison and slofts

NEMO-examples: simple configurations to study specific oceanic physical processes and be used as a tool for training

NM-CT: Fortran and Matlab codes for the paper "A Chebyshev-Tau spectral method for normal modes of underwater sound propagation with a layered marine environment", by H. Tu, Y. Wang, Q. Lan et al.

NRL HWM14 Horizontal Wind Model: code from the Naval Research Lab described in the paper Drob, D. P., et al. (2015), "An Update to the Horizontal Wind Model (HWM): The Quiet Time Thermosphere", Earth and Space Science

nshmp-haz-fortran: code for the National Seismic Hazard Mapping Project, by Peter Powers et al.

Ocean Assimilation Kit (OAK): module for high level input/output, matrix operations, n-dimensional interpolation of arbitrary curvilinear grid, reduced-rank analysis updates, and assimilation, by Alexander Barth et al.

OceanWave3D-Fortran90: efficient coastal engineering research tool used worldwide for simulation of nonlinear and dispersive free surface waves in varying bathymetries from very deep to shallow water. An associated paper is Analysis of Efficient Preconditioned Defect Correction Methods for Nonlinear Water Waves, by Allan Peter Engsig-Karup, International Journal of Numerical Methods in Fluids (2013).

okada_wrapper: MATLAB and Python wrappers by Ben Thompson for the Okada DC3D0 point source and the DC3D rectangular dislocation surface Fortran subroutines

omuse: Oceanographic MUltipurpose Software Environment is a package to conduct numerical experiments in oceanography and other Earth sciences.

Open-source geomagneToSphere prOpagation tool (OTSO): geophysics tool used to compute the trajectories of cosmic rays within the Earth's magnetosphere, by Nicholas Larsen. These computations are used to determine physical values, such as cut-off rigidities and asymptotic cones for locations on the Earth, that are needed by the cosmic ray research community.

Open-source Seismic Wave Propagation Code (OpenSWPC): simulates seismic wave propagation by solving equations of motion with constitutive equations of elastic/viscoelastic medium by finite difference method (FDM) under message passing interface (MPI) environment in 3D and 2D (P-SV or SH) media, by Takuto Maeda. This package also provides a set of tools for visualizing/converting simulation output.

Operational Priority Substances model (OPS): program to simulate the distribution of pollutants in the air and calculate how much of these substances ends up on soil or crops per hectare (deposition), from the National Institute for Public Health and the Environment of the Netherlands

Optimal Retrieval of Aerosol and Cloud (orac): optimal estimation retrieval scheme for the estimation of aerosol and cloud properties from a wide range of visible-infrared imaging satellites, such as MODIS, AATSR, AVHRR and SEVIRI. It has been used to produce analysis-ready datasets of cloud and aerosol properties as part of the ESA CCI project and is currently supported by NCEO.

Otidaloalharmsynth: codes for spherical harmonic synthesis of ocean tidal load effects on all-element geodetic variations, by Chuanyin Zhang.

PaleoCalAdjust: accompanies this paper: Bartlein, P. J. and Shafer, S. L.: Paleo calendar-effect adjustments in time-slice and transient climate-model simulations (PaleoCalAdjust v1.0): impact and strategies for data analysis, Geosci. Model Dev., https://doi.org/10.5194/gmd-12-3889-2019, 2019.

Parameterization for Unified Microphysics Across Scales (PUMAS): code for most versions of the Morrison-Gettleman (MG) microphysics as well as the version which includes a unified ice closure and is now called PUMAS. Associated publication: Gettelman, A., H. Morrison, K. Thayer‐Calder, and C. M. Zarzycki. 2019. The Impact of Rimed Ice Hydrometeors on Global and Regional Climate. Journal of Advances in Modeling Earth Systems.

Passive and Active Microwave TRANsfer (PAMTRA): Python/Fortran 90 package to solve the passive and active microwave radiative transfer in a plan parallel horizontally homogeneous atmosphere with hydrometeors, by Davide Ori et al.

Pecube_D: version of Pecube 3D thermal model that tracks exhumed sample cooling histories and calculated predicted cooling ages, by Todd Ehlers et al. It also allows for the simulation of topographic evolution and is (optionally) coupled with the CASCADE surface process model.

Perple_X: programs for calculating phase diagrams, manipulating thermodynamic data, and modeling equilibrium phase fractionation and reactive transport, by James A. D. Connolly

phenograss-example: working example of the PhenoGrass model as described in the paper Productivity of North American grasslands is increased under future climate scenarios despite rising aridity, by Koen Hufkens et al., Nature Climate Change (2016)

PICO_Fortran: implementation by Didier M. Roche of the Potsdam Ice-shelf Cavity mOdel from the paper Antarctic sub-shelf melt rates via PICO, by Ronja Reese et al., (2018).

pizza: high-performance numerical code for quasi-geostrophic and non-rotating convection in a 2-D annulus geometry, by Thomas Gastine et al. pizza solves for the Navier-Stokes equation including Coriolis force coupled with a temperature equation and/or an equation for the chemical composition under the Boussinesq approximation.

plantFEM: plant/farming simulator based on Finite Element Method, which targets crops in fields, from kazulagi. This software provides multi-physical simulations of agriculture for canopies, plants, and organs for farmers, breeders, and agronomists.

Plasti: 2-D ALE (Arbitrary Lagrangian Eulerian) code by Sean Willett and Chris Fuller. Reference: Fuller, C.W., Willett, S.D. and Brandon, M.T., 2006. Formation of forearc basins and their influence on subduction zone earthquakes. Geology, 34: 65-68.

PLUME-MoM-TSM: solves the equations for a steady-state integral volcanic plume model, describing the rise in the atmosphere of a mixture of gas and volcanic ash during an eruption, by Mattia de' Michieli Vitturi. The model describes the steady-state dynamics of a plume in a 3-D coordinate system, and the two-size moment (TSM) method is adopted to describe changes in grain-size distribution along the plume associated with particle loss from plume margins and with particle aggregation.

POLAN: calculate real-height profiles from chirp ionosonde data from the ionosphere, by J. E. Titheridge, updated by Michael Hirsch

PRIDE-PPPAR: GPS PPP ambiguity resolution from PrideLab. Reference: Geng, J., Chen, X., Pan, Y., Mao, S., Li, C., Zhou, J., Zhang, K. (2019b) PRIDE PPP‑AR: an open‑source software for GPS PPP ambiguity resolution. GPS Solutions 23:91 doi:10.1007/s10291-019-0888-1.

psi3d: semi-implicit 3D hydrodynamic model parallelized for computation across CPU threads using OpenMP, by Sergio Valbuena et al. Technical details regarding governing equations and numerical schemes are in the paper A Semi-Implicit, Three-Dimensional Model for Estuarine Circulation by Peter E. Smith.

PSyclone: domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran, from stfc

pycathy_wrapper: Python wrapper for the CATHY (V1, and plant model version) Fortran code allowing mesh creation, forward and inverse modeling, and simple output visualization of CATHY simulations. Associated paper: Camporese, M., Paniconi, C., Putti, M., Orlandini, S., 2010. Surface-subsurface flow modeling with path-based runoff routing, boundary condition-based coupling, and assimilation of multisource observation data..Water Resources Research 46.

PyGeopack: Wrapper for the geopack-08 Fortran code used for the Tsyganenko magnetic field models

pygtide: Python module that wraps around ETERNA PREDICT 3.4 which is compiled from Fortran into an executable using f2py. The original ETERNA PREDICT 3.3 was written by H.-G. Wenzel in a mix of Fortran 77 and 90.

pyOM2: ocean circulation model with Fortran and Python front end, by ceden

PyProSAIL: Python interface by Robin Wilson to the ProSAIL combined leaf optical properties (PROSPECT) and canopy bi-directional reflectance (SAIL) model, in Fortran

PyRaysum:g enerates sets of ray-theoretical seismograms for an incident plane wave (teleseismic approximation) for models consisting of a stack of layers with planar but nonparallel (dipping) interfaces, allowing the possibility of anisotropy in the layers. Incident P and S waves are supported. PyRaysum is a Python wrapper around the Fortran software Raysum, originally developed by Andrew Frederiksen.

pySIR: Python wrapper for the Stokes Inversion based on Response functions Fortran code by Ruiz Cobo & del Toro Iniesta (1992)

PySolid: Python wrapper for the Fortran program solid to compute solid Earth tides. Solid Earth tides introduces very long spatial wavelength range components in SAR/InSAR observations, as shown in the Sentinel-1 data with regular acquisitions and large swaths (Fattahi et al., 2020).

Quasi-DYNamic earthquake simulator: qdyn: boundary element software to simulate earthquake cycles (seismic and aseismic slip on tectonic faults) under the quasi-dynamic approximation (quasi-static elasticity combined with radiation damping) on faults governed by rate-and-state friction and embedded in elastic media, by Yingdi Luo et al.

Radar Altimeter Database System (RADS): apart from actual altimeter data, provides a suite of applications and subroutines that simplify the reading, editing and handling of data from various radar altimeters. RADS was developed by the Delft Institute for Earth-Oriented Space Research, the NOAA Laboratory for Satellite Altimetry, and EUMETSAT.

REAL: Rapid Earthquake Association and Location, by Dal-mzhang

Regulated Ecosystem Model (REcoM): water column biogeochemistry and ecosystem model which incorporates cycles of carbon and nutrients (nitrogen, iron, and silicon) with varying intracellular stoichiometry in phytoplankton, zooplankton and detritus, from the Alfred Wegener Institute

ReosProject: tools for hydrological and hydraulic analysis

Ring current Atmosphere interactions Model with Self Consistent magnetic field (B) (RAM-SCB): combines a kinetic model of ring current plasma with a three dimensional force-balanced model of the terrestrial magnetic field, from lanl. The kinetic portion, RAM, solves the kinetic equation to yield the bounce-averaged distribution function as a function of azimuth, radial distance, energy and pitch angle for three ion species (H+, He+, and O+) and, optionally, electrons.

relax: implements a semi-analytic Fourier-domain solver and equivalent body forces to compute quasi-static relaxation of stress perturbation, from geodynamics

RoadSurf: library for predicting road conditions, by Virve Karsisto et al. The included features are road surface temperature and storage term (water, ice, snow, deposit) calculation.

rotunno83: Python and Fortran scripts by Ewan Short for solving the differential equations in Rotunno's 1983 paper On the Linear Theory of the Land and Sea Breeze

Routing Application for Parallel computatIon of Discharge (RAPID): river network routing model, by Cedric H. David et al. Given surface and groundwater inflow to rivers, this model can compute flow and volume of water everywhere in river networks made out of many thousands of reaches.

rsl: maps the effects of rising sea levels on Great Britain, by Guymer

rsofun: R Simulating Optimal FUNctioning (RSOFUN) framework with underlying Fortran code for site-scale simulations of ecosystem processes, with modules for the P-model, SPLASH, and BiomeE, from GECO

sailing: sailing simulation based on CFSR wind and ocean current data, from ntu-as-cooklab. The goal is to simulate the sailing route of a sailing ship during different seasons based on a simple model, which may be helpful for studies on human migration across the ocean.

SAMSIM: thermodynamic 1D sea ice model, by pgriewank

sbetr: standalone reactive transport libary designed to be integrated into land surface models such as CLM and ALM. Associated paper: Tang, J., Riley, W. J., and Zhu, Q.: Supporting hierarchical soil biogeochemical modeling: version 2 of the Biogeochemical Transport and Reaction model (BeTR-v2), Geosci. Model Dev., 15, 1619–1632

SCEPTER: reaction-transport code for simulating carbon dioxide removal through enhanced rock weathering, from Carbon Dioxide Removal Lab

SCSM2.5d: 2.5D seismic wave modeling program that uses a subdomain Chebyshev spectral finite difference method, by mswonscsm. It can handle various modeling scenarios including viscoacoustic, isotropic viscoelastic, anisotropic viscoelastic (VTI, ORT, and TTI), solid and water free surfaces, and water-solid interfaces.

Seismic and Radar Toolbox (SeidarT): platform for forward modeling mechanical and electromagnetic wave propagation, by Steven P. Bernsen et al. The major objective of the project is to easily and quickly implement isotropic and anisotropic complex geometries and/or velocity structures to develop prior constraints for - not limited too - investigating, estimating, and imaging englacial ice structure, sub-glacial boundary conditions on the sub-regional scale.

SEIS_FILO: SEISmological transdimensional inversion tools for Flat and Isotropic Layered structure in the Ocean, by akuhara

SEISMIC_CPML: set of sixteen Fortran 90 programs to solve the two-dimensional or three-dimensional isotropic or anisotropic elastic, viscoelastic or poroelastic wave equation using a finite-difference method with Convolutional or Auxiliary Perfectly Matched Layer (C-PML or ADE-PML) conditions, developed by Dimitri Komatitsch and Roland Martin

seismo-fortran: utility modules for dealing with generally-anisotropic elastic constants and other geophysics problems, by Andy Nowacki

seismo_tools: utilities for working with seismological data formats, seismic catalogs, and other common tasks such as calculating distances, computing arrival times, displaying seismograms, etc., by Antonio Villaseñor

SealEveL EquatioN solver (SELEN): numerical solution of the Sea Level Equation (SLE) for a spherical, layered, rotating Earth with viscoelastic rheology, by Eric Heien et al.

SEM2DPACK: spectral element method for 2D wave propagation and fracture dynamics, with emphasis on computational seismology and earthquake source dynamics, from jpampuero et al.

Semi-implicit Cross-scale Hydroscience Integrated System Model (SCHISM): community-supported modeling system based on unstructured grids and designed for the seamless simulation of 3D baroclinic circulation across creek-lake-river-estuary-shelf-ocean scales.

slstr-preprocessor: software for aggregating the SLSTR 500 m Vis/NIR channels (S1-6) onto the 1 km IR grid ("i-stripe" as used for S7-9), by Owen Embury and Niall McCarroll. An associated paper is Improving the combined use of reflectance and thermal channels for ocean and coastal cloud detection for the Sea and Land Surface Temperature Radiometer (SLSTR), by Claire E. Bulgin et al., Remote Sensing of Environment (2023).

SIBERIA: simulates the evolution of landscapes under the action of runoff and erosion over long times scales. An associated publication is Hancock, G.R.; Gibson, Abraham; Wells, T.; 2021. Hillslope erosion in a grassland environment: Calibration and evaluation of the SIBERIA landscape evolution model. Earth Surface Processes and Landforms, 46, 728–743

smash: Python library that provides a variety of user-friendly routines for hydrological modeling, including data preprocessing, high-dimensional optimization tools, sensitivity and signatures analysis, all interfaced with an efficient Fortran solver

sprayHFs: subroutines to add seastate-dependent sea spray heat flux physics to an existing bulk surface layer scheme in a coupled regional or global Earth system model. An associated paper is Sea-State-Dependent Sea Spray and Air–Sea Heat Fluxes in Tropical Cyclones: A New Parameterization for Fully Coupled Atmosphere–Wave–Ocean Models, by Benjamin W. Barr et al., Journal of the Atmospheric Sciences (2023).

Structure for Unifying Multiple Modeling Alternatives (SUMMA): hydrologic modeling framework that can be used for the systematic analysis of alternative model conceptualizations with respect to flux parameterizations, spatial configurations, and numerical solution techniques, by Martyn P. Clark et al.

Super-Fast INundation of CoastS (SFINCS): reduced-complexity model designed for super-fast modelling of compound flooding events in a dynamic way, from Deltares

Surface wave Adjoint Travel-time Tomography (SurfATT-iso): package for surface wave travel-time tomography, which is designed to invert surface wave travel-time data for 2D/3D isotropic or azimuthal anisotropic velocity structures. An associated paper is Topography-Incorporated Adjoint-State Surface Wave Traveltime Tomography: Method and a Case Study in Hawaii, by Shijie Hao et al., Journal of Geophysical Research: Solid Earth (2024).

Shear-wave birefringence analysis (SHEBA): code associated with Wüstefeld, A.; Al-Harrasi, O.; Verdon, J.; Wookey, J. and Kendall, J-M. (2010) "A strategy for automated analysis of passive microseismic data to image seismic anisotropy and fracture characteristics", Geophysical Prospecting, vol 58, 755–773, DOI:10.1111/j.1365-2478.2010.00891.x

ShellSet: parallel dynamic neotectonic modelling, by Jon B. May, Peter Bird, and Michele M. C. Carafa

SLIM: The Simple Land Interface Model: reference: Laguë, M. M., Bonan, G. B., & Swann, A. L. S. (2019). Separating the Impact of Individual Land Surface Properties on the Terrestrial Surface Energy Budget in both the Coupled and Uncoupled Land–Atmosphere System. Journal of Climate, 32(18), 5725–5744. https://doi.org/10.1175/jcli-d-18-0812.1

Simstrat: one-dimensional physical lake model for the simulation of stratification and mixing in deep stratified lakes, from Eawag-AppliedSystemAnalysis. The model was originally developed by Goudsmit et al. (2002) and has been successfully applied to lakes with different physical properties.

Sparse Matrix Operator Kernel Emissions (SMOKE) Modeling System: emissions processing system designed to create gridded, speciated, hourly emissions for input into a variety of air quality models such as CMAQ, REMSAD, CAMX and UAM. SMOKE supports area, biogenic, mobile (both onroad and nonroad), and point source emissions processing for criteria, particulate, and toxic pollutants.

Soil and Water Assessment Tool Plus (SWAT+): small watershed to river basin-scale model to simulate the quality and quantity of surface and ground water and predict the environmental impact of land use, land management practices, and climate change. SWAT is widely used in assessing soil erosion prevention and control, non-point source pollution control and regional management in watersheds.

Spectral orientation fabric (specfab): spectral fabric model of kinematic lattice (c-axis) rotation (Svendsen and Hutter, 1996), discontinuous dynamic recrystallization (Placidi and others, 2010), and rotation recrystallization (Gödert, 2003)

Specfem3D: simulates acoustic (fluid), elastic (solid), coupled acoustic/elastic, poroelastic or seismic wave propagation in any type of conforming mesh of hexahedra (structured or not.), from geodynamics

SPHERA: Lagrangian Computational Fluid Dynamics (LCFD) - Smoothed Particle Hydrodynamics (SPH) research code by Andrea Amicarelli et al. Applications: subcatchment flash floods and fast landslides for the safety of hydroelectric plants, electrical substations and electricity pylons.

Surface Wave Multipathing (swmp): surface wave multipathing ray tracing code, associated with paper Hauser, J., Sambridge, M. and Rawlinson, N. (2008). Multiarrival wavefront tracking and its applications. Geochem. Geophys. Geosyst., 9(11), Q11001

SurfTomo: direct inversion of surface wave dispersion data, by caiweicaiwei

SUTRASET: extended USGS SUTRA 2.2 considering seepage(S), evaporation(E) and tide(T)

SWAP-SAMUCA: process-based crop model for simulations of sugarcane growth and water dynamics. Associated paper: Modelling the trash blanket effect on sugarcane growth and water use, by Murilo dos Santos Vianna et al., Computers and Electronics in Agriculture (2020).

SWMM5 +: prototype Fortran 2008 engine for the EPA Storm Water Management Model (SWMM), by Gerardo Andrés Riaño Briceño et al.

SW_VAR_DENS_MODEL: model shallow gas-particles flows over digital elevation models (DEMs) of natural terrain, by demichie. The model solves for the conservation equations (mass,momentum,energy) of the mixture, and accounts for sedimentation, erosion, friction and entrainment.

Telewavesim: teleseismic body wave modeling through stacks of (submarine/anisotropic) layers, by Pascal Audet

Tenstream: approximately solves the radiative transfer equation in 3D and computes irradiance and heating rates from optical properties

Theriak-Domino: calculate and plot thermodynamic functions, equilibrium assemblages and rock-specific equilibrium assemblage diagrams, by Christian de Capitani

Tomofast-x v.1.6: parallel inversion platform to run single domain or joint inversion (gravity and magnetic data), by V. Ogarko, J. Giraud, R. Martin and M. Jessell. It can use local weighting of gradient regularization function, global and local petrophysical constraints (Gaussian mixture model and multiple disjoint bound constraints).

Topo: NCAR global model topography generation software for unstructured grids

Town Energy Balance (TEB) model: calculates the urban surface energy balance at neighborhood scale assuming a simplified canyon geometry. Paper: Meyer, D., Schoetter, R., Masson, V., Grimmond, S., 2020: Enhanced software and platform for the Town Energy Balance (TEB) model. Journal of Open Source Software, 5(50), 2008.

Tracmass: Lagrangian trajectory code for ocean and atmospheric general circulation models, by Aitor Aldama and Kristofer Döös. The code makes it possible to estimate water paths, Lagrangian stream functions (barotropic, overturning, etc.), exchange times, etc.

Tropospheric ultraviolet-extended (TUV-x): photolysis rate calculator from NCAR. Associated paper: Madronich, Sasha, and Siri Flocke (1999), The role of solar radiation in atmospheric chemistry, in Handbook of Environmental Chemistry, edited by P. Boule, pp. 1-26, Springer-Verlag.

trnfsp3n: Fortran 77 code for transforming GPS orbit files in SP3 format between different realizations of ITRF's, from Geo-Linux-Calculations

TSMP: Terrestrial System Modeling Platform (TSMP or TerrSysMP, https://www.terrsysmp.org) is a scale-consistent, highly modular, massively parallel regional Earth system model, from HPSCTerrSys

tsunami: parallel tsunami simulator. Companion running example from book Modern Fortran: Building Efficient Parallel Applications

Universal Boltzmann Equation Solver (UBER): solves the general form of Fokker-Planck equation and Boltzmann equation, diffusive or non-diffusive, that appear in modeling planetary radiation belts, by Liheng Zheng

uclales: large eddy simulation code for atmospheric flow

Utrecht FinitE voluMe Ice-Sheet Model (UFEMISM): ice-sheet-shelf model that solves the hybrid SIA/SSA ice-dynamical equations on a dynamic adaptive grid. Reference: The Utrecht Finite Volume Ice-Sheet Model: UFEMISM (version 1.0), by Constantijn J. Berends, Heiko Goelzer, and Roderik S. W. van de Wal1, Geosci. Model Dev., 14, 2443–2470, 2021 https://doi.org/10.5194/gmd-14-2443-2021

VolcGases: Python wrapper to a Fortran program that calculates the gases produced by a volcano, by Nick Wogan. Reference: "Abundant Atmospheric Methane from Volcanism on Terrestrial Planets Is Unlikely and Strengthens the Case for Methane as a Biosignature", by Nicholas Wogan, Joshua Krissansen-Totton, and David C. Catling, Published 2020 October 29, The Planetary Science Journal, Volume 1, Number 3

VolumeLibrary: National Volume Estimator Library (NVEL) is a collection of the standing tree volume estimators used by the U.S. Forest Service

VVM: Vector Vorticity equation cloud-resolving Model

Waiwera: parallel geothermal flow simulator that numerical simulates high-temperature subsurface flows, including robust phase changes. Reference: Croucher, A.E., O'Sullivan, M.J., O'Sullivan, J.P, Yeh, A., Burnell, J. and Kissling, W. (2020). "Waiwera: A parallel open-source geothermal flow simulator". Computers and Geosciences 141, https://doi.org/10.1016/j.cageo.2020.104529.

WAM: third generation spectral ocean wave model WAM Cycle 6, written in Fortran 95 and MPI, by Arno Behrens and oguh1

WASA-SED: numerical model for simulation hydrological and sediment fluxes from meso-scale catchments (Mueller et al., 2010), from TillF

Wetland Water Quality Model (WetQual-GUI): simulates nitrogen (N), phosphorus (P), total suspended sediment (TSS) and carbon (C) cycles and their dynamics in wetlands, by Daniel Lee Young et al. The model partitions a wetland into three basic compartments: (1) (free) water column, (2) wetland soil layer, which is further portioned into aerobic and anaerobic zones, and (3) plant biomass.

Wildland-urban Interface Simulator (WFDS): extension of NIST's structural Fire Dynamics Simulator (FDS) to fuels that include vegetation. WFDS uses computational fluid dynamics methods to solve the governing equations for buoyant flow, heat transfer, combustion, and the thermal degradation of vegetative fuels.

WIN2PhaseNet: tool to make data for prediction and training of PhaseNet: A deep-neural-network-based seismic arrival-time picking method (Zhu and Beroza, 2019) from WIN/WIN32 format waveform file and pick list

WRF-Hydro: community modeling system and framework for hydrologic modeling and model coupling, from NCAR. In 2016 a configuration of WRF-Hydro was implemented as the National Water Model (NWM) for the continental United States.

WAVEWATCH III (WW3): community wave modeling framework that includes the latest scientific advancements in the field of wind-wave modeling and dynamics, from NOAA-EMC. Solves the random phase spectral action density balance equation for wavenumber-direction spectra.

yelmo: 3D ice-sheet-shelf model solving for the coupled dynamics and thermodynamics of the ice sheet system. Yelmo can be used for idealized simulations, stand-alone ice sheet simulations and fully coupled ice-sheet and climate simulations.

Economics

aimad: Automatic Differentiation Applied to the Likelihood Function for Dynamic General Equilibrium Models, by houtanb. Associated with paper Bastani, Houtan and Luca Guerrieri. "On the Application of Automatic Differentiation to the Likelihood Function for Dynamic General Equilibrium Models". Advances in Automatic Differentiation, Eds. Bischof, C.H., et. al. Berlin: Springer-Verlag, 2008. 303-314.

ce-fortran: program and compiler Database that accompanies the book "Introduction to Computational Economics using Fortran" (2018), by Fehr and Kindermann

DeadlyDebtCrises: code and data appendix for Deadly Debt Crises: COVID-19 in Emerging Markets, accepted for publication by The Review of Economic Studies, by Cristina Arellano, Yan Bai, and Gabriel Mihalache

defaultModel: Fortran+OpenMP implementation of the canonical sovereign default model with long-term debt, by Gabriel Mihalache. Solved with discrete choice methods. The MaturityExtension repo is associated with the paper Sovereign default resolution through maturity extension, Journal of International Economics (2020).

econ-toolchain: general tools used for structural macroeconomic modeling, including codes for global optimization, I/O, Markov chains, finding roots, golden-section search, and unit testing, by Renato Zimmermann.

firingcosts_petit2021: replication package for the working paper Aggregate effects of firing costs with endogenous firm productivity growth (2021) by Borja Petit. The codes use OpenMP for parallelization and GNUplot to generate the graphs.

FortranRiskEngine: Monte Carlo simulation tool designed for quantitative finance applications, by Paul Nikholas Lopez

HANK: replication of the computational algorithm for solving Heterogeneous Agent New Keynesian (HANK) model, by ikarib. The original code was written in Fortran utilizing SparseSuite library and parallelized using MPI on the cluster with 33 CPUs (Intel Xeon CPU E5-2695 v4 @ 2.10GHz) with total runtime of 1.5 hours.

msearch-1asset: search-theoretic model of money with one asset and persistent heterogeneity, associated with paper The long-run redistributive effects of monetary policy, by Christian Bustamante, Journal of Monetary Economics (2023)

National Energy Modeling System (NEMS): long-term energy-economy modeling system of U.S. energy markets, from the Energy Information Administration. The model is used to project production, imports, exports, conversion, consumption, and prices of energy, subject to user-defined assumptions.

numx: High-Performance Library for Portfolio Optimization and Risk Analysis, by alpgodev

trendInflation: code for trend inflation model of Mertens (2016, REStat, http://dx.doi.org/10.1162/REST_a_00549) and Garnier, Mertens and Nelson (2015, IJCB, http://www.ijcb.org/journal/ijcb15q4a2.htm). The model implemented here is the variant with stochastic volatility in all inflation gaps.

Engineering

Bonneville Power Administration Interactive Power Flow and Transient Stability Program (bpa-ipf-tsp): family of programs for doing power flow studies. IPF models the balanced steady-state operation of an electric power network.

BsaLib: library for the Bispectral Stochastic Analysis of structures under non-Gaussian stationary random actions. An associated paper is Non-Gaussian buffeting analysis of large structures by means of a Proper Orthogonal Decomposition, by M. Esposito Marzino and V. Denoël, Journal of Wind Engineering and Industrial Aerodynamics (2023).

CCFatiguePlatform: web application to faciltate manipulation and harmonized storage of composite materials testing datasets, from EPFL-ENAC

Deformation Monitoring Package (DMPACK): package for sensor control and automated time series processing in geodesy and geotechnics, consisting of a library libdmpack and additional programs based on it which serve as a reference implementation of solutions to various problems in deformation monitoring, by Philipp Engel

DigiTWind: advancement of digital-twin for floating offshore wind turbine applications, by Yuksel-Rudy et al. It is related to the OpenFAST project

DynamicStiffness: calculate the harmonic response of plane frame structures, by jbcSmc

F2A: aero-hydro-servo-elastic tool developed based on AQWA by Yang Yang, a postdoctoral research associate in Liverpool John Moores University for performing fully coupled analysis of floating offshore wind turbines (FOWT)

friction: routines for calculating the frictional response of contacting bodies, using the Coulomb, Lu-Gre, Maxwell, Generalized Maxwell Slip, Stribeck, and Modified Stribeck models, by Jason Christopherson

Generator's high-current bus ducts: computation of current distributions, power losses, and magnetic fields of the high-current, shielded generator bus ducts, by Petar Sarajcev

minimal-dx: library for simulating the performance of single air-cooled cooling and heating direct expansion (DX) coils -- i.e. a model for a very simple air-to-air air conditioner (AC) and heat pump (HP). MinimalDX is based on EnergyPlus's Single-Speed Electric DX Air Cooling Coil and Single-Speed DX Heating Coil Standard Ratings models.

MPM3D-F90: simplified Fortran 90 version of MPM3D that serves as the companion open source code for the book X Zhang, Z Chen, Y Liu. The Material Point Method - A Continuum-Based Particle Method for Extreme Loading Cases. Academic Press, 2016

N-Area Reliability Program (NARP): assesses bulk power system reliability. Associated preprint: A Free Industry-grade Education Tool for Bulk Power System Reliability Assessment, by Yongli Zhu and Chanan Singh.

openfast: NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes

pyAVL: stripped down version of Mark Drela and Harold Youngren's famous AVL code for the aerodynamic and flight-dynamic analysis of rigid aircraft of arbitrary configuration, wrapped in Python with f2py by Josh Anibal. This allows one to more easily conduct large parameter sweeps in AVL or to include AVL into a larger model.

Reference OpenSource Controller (ROSCO) for wind turbine applications: modular and fully adaptable baseline wind turbine controller to the scientific community, from NREL. Because of the open character and modular set-up, scientists are able to collaborate and contribute in making continuous improvements to the code.

Radar_ElectroOptical_Simulation: models and simulates the inner workings of Radar systems, Electro-Optical active and passive sources of IR radiation, and missile guidance systems, by Bernard Gingold

THOR: discrete ordinates radiation transport code using the AHOT-C method on unstructured meshes (can be generated using Gmsh and converted using OpenMeshConverter) and multigroup XS (can be generated using OpenMC and converted using OpenXSConverter), by Nicholas Herring et al.

Wind Energy with Integrated Servo-control (WEIS): performs multifidelity co-design of wind turbines, from WISDEM. WEIS is a framework that combines multiple NREL-developed tools to enable design optimization of floating offshore wind turbines.

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

assert-fortran: simple module which adds an assertion function, by alecksandr26. It works by enabling -cpp the c preprocesor directives in the Fortran compiler.

erloff: errors and logging for Fortran, by Brad Richardson. The basic usage is that a procedure can have intent(out) message and/or error list arguments, or as a component of its return value.

errorfx: simple library for demonstrating exception like error handling strategy in Fortran, by Bálint Aradi. It provides an error handling mechanism which is robust, convenient, and PURE.

errstat: error status and message handling library for Modern Fortran, by Tomohiro Degawa. Also fassert, a simple assertion library

ferror: library to assist with error handling in Fortran projects

FException: provide an easy but flexible mechanism for handling errors in Fortran, from csbrady-warwick. FException does not try to implement C++/Python style exceptions but has its own approach that is a mixture of classical exceptions with propagating error codes

Fortran Error Handler: universal and comprehensive solution for applications requiring functional and robust error handling, utilising the power of modern object-oriented Fortran, by Sam Harrison and KellerV

Fortran Error Handling: makes error handling easier by providing a type, error_t, to indicate if a procedure invocation has failed, from SINTEF. Errors can be handled gracefully and context can be added while returning up the call stack. It is also possible to programmatically identify and handle certain types or errors without terminating the application. It generate stacktraces along with any error when combined with the Fortran Stacktrace library, which enables generation of stacktraces for Fortran by wrapping the C++ library backward-cpp.

Fortran exceptions library: provides exception handling for Fortran 2003 and later, based on the methodology of Poppe et al. 2012

Fortran Logging Library: Flogging: provides an easy-to-use interface for logging events and errors in Fortran applications and libraries, by Chris MacMackin. Its use and functionality is similar to that of logging library in Python.

Expression Parsers

Fortran Equation Parser (feqparse): equation parser Fortran class that is used to interpret and evaluate functions provided as strings, by Joe Schoonover

fortran_function_parser: function parser module by Jacob Williams is intended for applications where a set of mathematical fortran-style expressions is specified at runtime and is then evaluated for a large number of variable values. This is done by compiling the set of function strings into byte code, which is interpreted efficiently for the various variable values.

Fortran Function Parser (ffp): evaluates a string containing a mathematical expression that can be formed by numbers, brackets, functions, and variables, by Wilton P. Silva and Ivomar B. Soares

Fortran Parser: parser of mathematical expressions by hennink and Jacopo Chevallard, based on Roland Schmehl's fparser

hp: rpn calclulator with a maximum stack size of 5, by sgeard It has full support for real and complex numbers and will calculate summary statistics for a set of reals of real pairs.

M_calculator: parse Fortran-like double precision scalar expressions, by urbanjost

M_matrix: Fortran callable version of old matlab-like interface, by urbanjost

shunting-yard-fortran: small expression parser using shunting yard algorithm, by Ian Giestas Pauli

Fast Fourier Transform

2DECOMP&FFT: scalable library for Fourier transforms, derived from 2decomp&fft, by BenMql. Compatible with in-core Chebyshev transforms.

ffte: computes Discrete Fourier Transforms of 1-, 2- and 3- dimensional sequences of length (2^p)(3^q)(5^r).

fftlog-f90: extended Fortran 90 version of the FFTLog code by Andrew Hamilton to convolve a tabulated function with a Bessel functions, by coccoinomane

fft-overlap: efficient implementations of ffts on multiple GPUs and across multiple nodes, by dappelha. Overlapping data transfer on multiple levels.

fftpack: double precision version of original fftpack, from fortran-lang

FFTPack: easily usable package of functions using wrapping the Fortran 77 FFTPack library, by keurfonluu

fftw3_wrapper: Fortran wrapper library around the FFTW C library that tries to mimic the Matlab and NumPy interfaces, by Kuan-Chih Wang

kissfft-f: wrapper by zozhia for KISS FFT, a mixed-radix Fast Fourier Transform in C

modern_fftpack: Fortran 2008 library of fast Fourier transforms -- an object-oriented modernization of NCAR's FFTPACK5.1., by jlokimlin

fstpack: library of Fast Stockwell transforms, including CUDA support, by Thomas Kreuzer

nufft: code for the 1D, 2D and 3D non-uniform FFTs, from biotrump

File I/O

cfgio: Fortran config file parser, by pkgpl

ciftbx: tool box of routines for manipulating Crystallographic Information File (CIF) data, by Sydney R. Hall and Herbert J. Bernstein

Convert Precision: converts large binary files in parallel from/to single to/from double precision, using MPI-I/O, Pedro Costa. The code assumes that the each file contains only single- or double-precision floating-point.

cprnc: tool for analyzing a netCDF file or comparing two netCDF files, from Earth System Model Computational Infrastructure

dataset1d: in-memory netCDF Dataset for fortran, for 1-D arrays only (so making it more similar to a pandas DataFrame), by perrette

easy-netcdf: OOP Interface to the netcdf Fortran library, by onepieceze

EasyNC: encapsulation for Fortran netcdf I/O with different data type, dimension, struct data, etc., by Roadelse

fcore: string handling and i/o routines, by jchristopherson

FiNeR: IO of INI (config) files for modern (2003+) Fortran projects, by szaghi and kostyfisik

fmmap: provides some of the features of the C posix or Windows memory mapped files under a simple and unique Fortran interface, by PierUgit. Two uses are allocating arrays that are potentially bigger the RAM+swap size, and which are backed in a temporary file (anonymous mapping), and opening existing files or creating new files, and mapping them to an array.

fortdb: Fortran Database (binary) file definition that allows easy reading and writing of datasets, with Fortran and Python interfaces, by jpf-x

Fortran IO Netcdf Assembly (FIONA): encapsulates netCDF library for easy use, by Li Dong et al.

flexout: Fortran-based flexible output manager with support for NetCDF and text formats, by Jorn Bruggeman et al.

flibcsv: bindings by Andre Smit to libcsv, a fast and flexible CSV library written in pure ANSI C that can read and write CSV data

Fortran Data Compression: sample programs demonstrating the ability to compress/decompress data on the fly when writing to or reading from a file in Fortran using named pipes (FIFOs), by SokolAK

Fortran 90 General I/O Interface (F90GIO): provides I/O interface for NetCDF, HDF4, HDF5 reading and writing, by Cheng Da

fortran_huffman: Huffman code compression, by Euler-37

fortran-messagepack: prototype library for MessagePack (an efficient binary serialization format) support in Fortran, by Kelly Schultz

Fortran-OpenPMD-File-Writers: writes in parallel 2D/3D mesh field data and particle data into HDF5 files using the OpenPMD standard, by Frank S. Tsung et al.

fortran-sperr: interface bindings by Oscar Mojica to SPERR, a lossy scientific (floating-point) data compressor in C and C++ that produces one of the best rate-distortion curves

Fortran-YAML: lightweight YAML parser written in object-oriented Fortran, by jombr et al.

fortran-yaml-cpp: YAML parser for Fortran matching the YAML 1.2 spec, by Nick Wogan. This package uses the C++ package yaml-cpp to parse yaml documents and then stores the data in Fortran derived types created by fortran-yaml.

fortran-zstd: Fortran 2018 interface bindings to selected Zstandard functions, by interkosmos. Zstandard is a fast compression algorithm, providing high compression ratios.

Fyaml: simple YAML parser, by Barry Baker. It supports basic YAML features including nested structures, sequences, various data types (strings, integers, floats, booleans, nulls), comments, anchors, and aliases.

H5_Assist: HDF5 interface libraries for Fortran, Java, and C#, by EcohydrologyTeam

HDF5 Fortran Wrapper: small wrapper implementing a simple interface to store and load high-dimensional arrays in Fortran, by Richard Foltyn. It is easier to use than the low-level API provided by the official HDF5 library.

HDF5_utils: high level interface to HDF5, by Justin Erwin. The library aims to abstract most of the HDF5 types, read/write datasets of multiple types and ranks, read/write full assumed-shape arrays, remove the need to pass dimensions, read/write attributes to file/group/datasets, provide the ability to create groups, access datasets by either absolute or relative path, check if a dataset/object exists, and get rank and size of a dataset, either to check dimensions or to allocate array before reading.

High Performance Parallel Data Interface to HDF5 (h5part): interface to the structured HDF5 data format that stores multiple time-step data for particle simulation scenarios and can be used for ParaView / VisIt visualization, by zoziha

IO Fortran Library: module providing high level routines for doing internal and external IO, by Austin C. Bullock. In particular, the module provides a handful of generic interfaces for performing string-based and array-based IO that are useful for recording program data, reading data into programs, and for writing formatted logs and output.

io_utilities: modules to help with input and output, by Arjen Markus: cmdparse parser for minimalistic commands (keyword and zero or more arguments), keyvars read in INI-files and fill in the values of the variables automatically, can also save the data in an INI-file, progressbar presents a progress bar on the screen (supports different styles)

json-fortran: KISS Fortran routines to write (multi-dimensional) data as JSON, by Jonathan Schilling

json-fortran-benchmarks: benchmarks for JSON Fortran parsers, by jacobwilliams. Also comparison to Python. Discussed here

h5fortran-mpi: HDF5-MPI parallel Fortran object-oriented interface, from scivision

hdf5-benchmark: benchmarking speed of HDF5 writes from MPI parallel workers, by scivision

hdf5_wrapper: Fortran wrapper for HDF5 (.h5 files), by Christian Bustamente. It provides a simpler interface that allows easy writing and reading of h5 files for double precision and integer arrays of up to six dimensions. On top of the Fortran wrapper, the package provides a Matlab function that simplifies the process of reading entire h5 files.

Object-oriented Fortran 2018 HDF5 interface: very simple single-file/module access to HDF5, by fccf. More advanced object-oriented Fortran HDF5 access is also available but not compatible with HDF5 1.10 like this program.

HDF5 wrapper: minimalistic hdf5 wrapper for Fortran90/95, by Matthias Pickem

M_display: standard Fortran 95 module for printing scalars, vectors, and matrices to external files, by urbanjost. The module can display variables of default kind of all intrinsic types (integer, real, complex, logical, and character), and add-on modules are provided for data of the nondefault kind.

modernfortran-libs: module that simulates the GNU Octave dlmread and dlmwrite functions to read and write text files, and a generic doubly linked list module, by Yuichiro Sakamoto

mpi-libfdf-parser: modern Fortran-based parser for parsing input files, by neelravi. It uses the LibFDF library and works with sequential as well as multinode calculations.

h5fortran: Simple, robust, thin HDF5 polymorphic Fortran read/write interface, by geospace-code

Max_diff_nc: compares two NetCDF files, by Lionel Guez. Only NetCDF variables with type NC_FLOAT or NC_DOUBLE are compared.

mkcdf: makes netCDF file from fortran binary file, by Hiroyuki Tomita

mo_netcdf: object-oriented wrapper around the NetCDF Fortran 90 interface, by David Schaefer et al.

nc4fortran: object-oriented Fortran NetCDF4 interface, by geospace-code

ncdfutil: routines for netCDF I/O, by Bob Yantosca and Melissa Sulprizio

neasy-f: simple wrapper for netCDF-Fortran, from PlasmaFAIR. Rather than attempting to be a feature-complete replacement, neasy-f wraps some common functions together and is opinionated about usage.

NetCDF95: interface to the NetCDF library, by Lionel Guez. Compared to the Fortran 90 NetCDF interface, the NetCDF95 interface is meant to be friendlier and more secure, for example freeing the user from the cumbersome task of handling the error status.

NetCDF Input-Output (NCIO): simple Fortran interface to NetCDF reading and writing, by alex-robinson

nml: Fortran namelist I/O module intended to provide a small upgrade to native Fortran namelist functionality, by alex-robinson

oo_hdf: object-oriented Fortran HDF5 module, by Ricardo Torres. This library aims to create a group of classes in Fortran to interact with HDF5.

qfyaml: quick Fortran YAML parser, by Bob Yantosca

Return of JSON for Fortran (rojff): with an interface inspired by jsonff, the data semantics and parser are redesigned to allow for high performance, by Brad Richardson and kmorris

rsfio: RSF file input/output module, by Wansoo Ha, independent from Madagascar. It can be used to read and write integer and single precision real and complex data in up to 9 dimensions, with a separate header text file.

SDF_FORTRAN: library for accessing files in the SDF (self-descibing file) format, by Keith Bennett et al.

Self-Baked-Fortran-NetCDF-Library: light-weight NetCDF C Library wrapper and an intermediate interface, by Han Tang. The major difference between this library and most of the other implementations (for example nc4fortran) is that this library is built on top of NetCDF C library directly.

serialbox: data serialization library and tools for C/C++ and Fortran, from GridTools

smartpars: class to read / load from file / dump to file a bunch of parameters, by Zdenek Grof

stl-fortran: Fortran STL (stereolithography) File I/O, by Jacob Williams

SUIO: library for input/output of SU files, by Wansoo Ha, independent from the Seismic Unix package

sz3_simple_example: bindings by Oscar Mojica for the SZ3 lossy compression library, allowing seamless integration of SZ3 compression capabilities into Fortran projects

table-for-fortran: table for Fortran working in a similar way as for Astropy or pandas, by aschneeberger. Currently reads and writes csv.

TinyTOML: small, single-file TOML parser, by Thomas Marks

toml-f: TOML parser implementation for data serialization and deserialization in Fortran. jonquil provides a compatibility layer to enable TOML Fortran using libraries to consume JSON as well as allow JSON consuming libraries to try out TOML.

Unidata NetCDF Fortran Library: The Unidata network Common Data Form (netCDF) is an interface for scientific data access and a set of freely-distributed software libraries that provide an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data.

VTKFortran: parse and emit files conforming VTK (XML) standard, by szaghi et al.

yaFyaml: Fortran-based YAML parser, from Goddard-Fortran-Ecosystem. The rationale for this one is simply to be compatible with the containers in gFTL

Finite Elements

CalculiX: 3D structural finite element program by Guido Dhondt and Klaus Wittig

calliope: project by N. N. Carlson to create general 1D, 2D, and 3D GWMFE reference codes, implemented in modern object-oriented Fortran, that will replace the original archaic Fortran 77 codes in legacy-gwmfe, associated with paper N. N. Carlson and K. Miller, Design and Application of a Gradient-Weighted Moving Finite Element Code II: in Two Dimensions, SIAM J. Sci. Comput., 19(3), 766-798 (1998)

CEOS: non linear finite element code by josemthiesen and BrunoKlahr

easifem-base: framework for developing finite element code in modern Fortran for solving PDEs, by vickysharma0812

elmerfem: finite element software for numerical solution of partial differential equations. Elmer is capable of handling any number of equations and is therefore ideally suited for the simulation of multiphysical problems.

feappv: free personal version of the FEAP (A Finite Element Analysis Program), associated with the book The Finite Element Method: Its Basis and Fundamentals, 7th ed., by O.C. Zienkiewicz, R.L. Taylor and J.Z. Zhu, Elsevier, Oxford, 2013

FEM: finite element modelling in Fortran for structural problems, solid mechanics, geotechnic and artificially structured soil, by Victor Robin

Finite Element Multiphysics PARallel solvers (FEMPAR): scientific software for the simulation of problems governed by partial differential equations (PDEs). It provides a set of state-of-the-art numerical discretizations, including finite element methods, discontinuous Galerkin methods, XFEM, and spline-based functional spaces.

FrontISTR: Large-Scale Parallel FEM Program for Nonlinear Structural Analysis, by Naoki Morita et al.

hp3d: scalable MPI/OpenMP hp-adaptive finite element software library for complex multiphysics applications, by Stefan Henneking et al.

HypFEM: enriched finite element solution space based numerical solver for initial-boundary value problems in hyperbolic linear PDEs, by md861

metis-fpm: Fortran API and a source repackaging by gnikit of METIS, a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices, from KarypisLab

MultiFEBE: associated with paper MultiFEBE: A multi-domain finite element–boundary element solver for linear mixed-dimensional mechanical problems, by D.R. Bordón, G.M. Álamo, L.A. Padrón, J.J. Aznárez, O. Maeso, SoftwareX 20, 101265, 2022

MYSTRAN: general purpose finite element analysis computer program for structures that can be modeled as linear (i.e. displacements, forces and stresses proportional to applied load), by dr-bill-c et al.

NASTRAN-95: NASA Structural Analysis System, a finite element analysis program (FEA) completed in the early 1970's

OpenRadioss: industry-proven analysis solution that helps users evaluate and optimize product performance for highly nonlinear problems under dynamic loadings. For more than 30 years, organizations have used Altair Radioss to streamline and optimize the digital design process, replace costly physical tests with quick and efficient simulation, and speed up design optimization iterations.

ParaFEM: open source parallel finite element analysis library that is documented by the text book "Programming the Finite Element Method"

ParallelFEM-Fortran: Parallel programming for Finite Element Analysis using Fortran and PETSc, by chennachaos. This code includes several parallel implementations for the Lapalace equation and linear elasticity in 2D and 3D.

ParMETIS for fpm: Fortran API and a source repackaging by gnikit of ParMETIS, an MPI-based library for partitioning graphs, serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices, from KarypisLab

PhiPsi_XFEM_Fortran_Codes_Early_Version: computational solid mechanics program, which involves the extended finite element method (XFEM), as well as the finite element method (FEM), by Shi Fang. Supported analysis types are 2D and 3D static analysis, 2D and 3D hydraulic fracturing analysis, 2D and 3D dynamic analysis, and 2D field problems analysis.

sam-lib: collection of FORTRAN 77 subroutines, originally by Kolbein Bell, for handling different tasks in finite element method solvers, such as the assembly of element matrices into their global counterparts, solving global linear systems of equations, solving eigenvalue problems, and some other lower-level matrix utilities

simple Discrete Element Method (sDEM): simple parallel DEM code by Zheng Gong, with the following features: MPI parallelization by means of 2D Domain Decomposition, the ability to handle particles with different diameters, both linear and non-linear contact force models, and NBS-Munjiza (Non Binary Search - Munjiza) contact search algorithm

tensor-algebra: some frequently required methods for the implementation of problems in the field of continuum mechanics, e.g. tensor algebra, by CfKu. These methods are usually needed and used to implement user subroutines in finite element software written in Fortran.

Fortran Books and Tutorials

coarray-tutorial: short tutorial using gfortran, ifort, or NAG Fortran, by Thomas Koenig

Computational_Techniques: Computational Techniques and Numerical Calculations course of the Erasmus Mundus Theoretical Chemistry and Computational Modelling Master's program. Part 1 introduces Fortran, and later parts discuss numerical methods.

compute-course-public: course material for the COMPUTE course - Scientific Program in Python and Fortran by Jonas Lindemann

ex-f90ish: small programs illustrating some of features of modern Fortran from the perspective of a FORTRAN 77 programmer, by Mitch Richling. His tutorial has links to these codes.

fidbits: Fortran tidbits: random code snippets produced in conversations that seem worth preserving for future reference, by Damian Rouson et al. They illustrate features of modern Fortran.

fortran: files (TeX, PDF, Exercise and Example codes) for HPC Training on Fortran, by alexpacheco

Fortran90_Basics: codes to learn the structure and first useful commands in Fortran 90 language, by brito-leonardo

fortran2018-examples: Fortran 2018 standard examples with broad applications, from SciVision

Fortran4Researchers: code and slides for a 1-day course Fortran for Researchers, by Heather Ratcliffe and Chris Brady

fortran-cpp-equivalents: collection of Modern Fortran and Modern C++ code snippets showing similar structures and processes between them, by Jeff Hole

FortranCourse: short course with each concept illustrated by a Fortran program, by Guillaume Roullet

fortran_examples: examples using advanced features of Fortran, by Philippe Carphin, Samuel Gilbert, and Michel Valin

fortran-examples: examples of cross-platform (Windows and Linux) compilation of Fortran codes using CMake, using LAPACK and compiling using Intel MKL via CMake, Fortran-C interoperability, and Fortran-CUDA interoperability, by maruthinh

FORTRAN_INTRO: intro exercises for the multi-scale modelling summerschool 2023 in Lahti, by Morten Engsvang

Fortran-MOOC: reading material, source code, and software stack for the PRACE MOOC on Fortran for scientific programming, by Geert Jan Bex et al.

fortran_oop_as_a_second_language: Software-Carpentry-style workshop teaching object-oriented features of Fortran, from acenet-arc. Also Ftn-sample-code, example code for a Fortran workshop

fortran-submodule: Examples of modern Fortran 2008 submodule, using Meson or CMake, from scivision. Fortran submodules allow easy switching in and out of features and extremely fast recompilation of large programs perhaps 100 times or more faster.

FortranTip: short instructional Fortran codes associated with Twitter @FortranTip, by Beliavsky et al.

fortran-tuto: code of the Fortran video tutorial by Derek Banas

githubactions_intro: introduces Github Actions as a tool for lightweight automation of scientific data workflows, with examples in Python and Fortran using gnuplot, by Oscar Mojica

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.

Introduction to Fortran Debugging: reviews the most common types of errors and present simple ways to locate and correct those errors without the use of any debugging applications, by Andres Perez Hortal. The common errors are illustrated using simple Fortran applications where the simple debugging techniques are applied.

Introduction to Modern Fortran: 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 Kevin Stratford

listings: code listings for Modern Fortran: Building Efficient Parallel Applications, by Milan Curcic

man-pages-fortran: Man pages for the Fortran language. The description of the Fortran language in these man pages has been taken from the GNU Fortran Compiler documentation, version 5.3.0. They contain elements that follow the Fortran standard, and elements that are GNU extentions.

M_intrinsics: man(1) pages for the standard Fortran intrinsics, with a secondary goal of providing a tested working example program for each intrinsic

Modern-Fortran: materials for a 4-day workshop covering Fortran and models of scientific parallel programming: OpenMP, OpenACC, CUDA Fortran and MPI, from WVU Research Computing

modern-fortran: notes and code from the Fortran Modernisation workshop, by dvalters

modern_fortran_book: files to build the site Modern Fortran in Science and Technology, by jonaslindemann

object_fortran: examples of object-based and object-oriented techniques, by Reinhold Bader

old-programming-idioms: explains old-style programming idioms used in FORTRAN 77 programs, such as array(*) versus array(:), array(10) as a starting point, COMMON blocks and BLOCK DATA, named and blank COMMON, the history of computers, equivalence, constants as actual arguments, intent, temporary arrays - non-contiguous arrays, implicit types, double precision versus kind, and other topics, by Arjen Markus

OOP-Fortran-Examples: examples of using the object-oriented features in Fortran, taken from a presentation by Chris MacMackin at RSECon 2019

RCDS-introduction-to-fortran: introductory course delivered by Chris Cooling at the Imperial College London Graduate School.

rocket-science: case study in modernizing legacy Fortran software, by Damian Rouson et al. This repository contains a modern mini-application for simulating solid rocket motors using an object-oriented, functional programming style in Fortran 2018, a legacy motor simulator demonstrating the solution of the same governing equations using a procedural programming style in Fortran 77/90, and a refurbished motor simulator demonstrating one modernization path for making the legacy solver object-oriented but without the radical redesign that affords the above purely functional programming style.

Upgrading-to-Fortran90: programs from Upgrading to Fortran 90 by Cooper Redwine (1995)

Games and Puzzles

3Drendering: 3D engine written to Linux framebuffer, ray-casting, by Ross J. Stewart

adventure: original Fortran version of Adventure by Will Crowther, updated by ghfbsd to work with a modern Fortran compiler

blocktran: falling-block object-oriented Fortran 2018 game, with resizable playfield, from fortran-gaming

Castlequest: parser adventure

Empire for the PDP-10: Empire Written In FORTRAN-10 for the PDP-10 Circa 1978, from DigitalMars

fcurses: module for Linux terminal control over cursor position, character drawing, raw keyboard input, and simple beep sounds, by Ross J. Stewart. Sufficent to write text based games in Fortran.

fortlife: Conway's Game of Life, written in Fortran 77 for the Open Watcom compiler on FreeDOS, but which also compiles on gfortran on Linux, by Owain Kenway

fortranchessprogram: chess program where the user enters moves in notation such as e2-e4 and the board is displayed as text

fortran-fun: collection of text-based computer games and other small programs, by interkosmos

fortran-raylib: interface bindings to raylib 4.5, for 2-D and 3-D game programming, by interkosmos

fortran-snake: classic "snake" game with several computer-controlled snakes, using raylib for graphics, by grofz

life: Conway's game of life, by Jeff Irwin

mastermind: classic MasterMind game in modern Fortran 2008, from fortran-gaming

Rhythm-Game-Fortran: Rhythm Game using raylib.f90, by SomeUnusualGames

rubik: Rubik's cube command line interface game, by Jeff Irwin

SDL77: C library for game programming in FORTRAN 77 that provides some glue code to access the software renderer of SDL 1.2, by interkosmos

ForSudoku: sudoku generator and solver, by Vincent Magnin

TREK7: Star Trek simulation game written by Donald M. Ecclestone in the early 70ties for the PDP-10. The game was ported to VAX computers running VMS in 1978 by the author with the help of Dan Gahlinger.

wumpus: Hunt the Wumpus game in Fortran, LISP, Prolog, and Literate-Java, by Yeon Ju

General Purpose

Algorithms: The Laboratory of Algorithms, by Andrey Pudov.

apps: utility programs to evaluate FORTRAN77-like mathematical expressions in line mode, print specified columns of a file, split Fortran source file into individual files, find the pathname of commands and optionally perform commands on them, change case of free-format Fortran file or remove comments, issue Unix-like commands, compute checksums of files, and do other things, by urbanjost

argparse-f: Modern Fortran command line parser, implemented with OOP, by 0382 and zoziha

argv-fortran: a better get_command_argument for Fortran that returns the argument in an allocatable character string, by Jacob Williams

AwesomeFortranLibraries: modules for numerics, file I/O, and other topics by Sourangshu Ghosh for use in more complex codes

Auto-generated time-stamped folder: code for auto generating a time-stamped folder, log file, and data file (csv) to store results of each run of the code, by Mohammad Asif Zaman. The submodules can be easily incorporated in any program. Useful for cases when the same program must be run many times and the corresponding data must be saved in files.

Batteries Included Fortran Library (BiF-lib): modules for dates, dynamic arrays, error handling, I/O, parsing equations, statistics, prime numbers, random number generation, finding roots, sorting, strings, and data types such as list and dict that mimic Python, by Scott Boyce

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

cernlib: large collection of general purpose libraries and modules maintained and offered in both source and object code form on the CERN central computers. Most of these programs were developed at CERN and are therefore oriented towards the needs of a physics research laboratory that is general mathematics, data analysis, detectors simulation, data-handling etc... applicable to a wide range of problems. nanoncernlib is a collection of commonly used cernlib routines packaged with cmake to easily build on modern systems.

commonTools: code for file I/O, Gauss-Legendre quadrature, mathematical and physical constants, interpolation, Legendre polynomials, random number generation, numerical integration, finding roots, sorting, statistics, and other topics, by Whitman T. Dailey

coretran: easy-to-follow library to make Fortran easier in general with wrapped interfaces, sorting routines, kD-Trees, and other algorithms to handle scientific data and concepts.

cpu_timer: Fortran 2008 object-oriented library for computing elapsed CPU time, by Jon Lo Kim Lin

f90getopt: getopt()- and getopt_long()-like functionality (similar to the C-functions) for Fortran 90, by Hani Andreas Ibrahim

fArgParse: command line argument parsing for Fortran, from Goddard-Fortran-Ecosystem

FACE: Ansi Colors and Styles Environment, by szaghi et al.

files_f90: directory reader by jordan4ibanez

FLAP: command Line Arguments Parser for poor people, by szaghi et al. A KISS pure Fortran Library for building powerful, easy-to-use, elegant command line interfaces

flib: standard library, function library, a tridiagonal matrix solver, and code for a doubly linked list, optimization, and interpolation

flink: Flexible Fortran Modules and Subroutines for Scientific Computing

Fommons: collection of common low level components to support XFunit, FTL and Frypto, by Fran Martinez Fadrique

forbear: progress bar environment by szaghi and jhykes

ForClust: manage and control a Linux system, such as adjusting the settings of the CPU and other components, by Seyed Ali Ghasemi

Fortran-corelib: string type, argument parser, logging, linked list, timedelta type, filesystem handling, and other basic functionality, by Richard Foltyn

Fortran General Library (FGL): code for bitstrings, exception handling, hash tables, lists, logging, queues, strings, sorting, JSON parsing, and other topics, from mobius-eng

fortran-kdtree: implementation of KD-Tree searching by dongli. KD-Tree is a standard data structure for indexing data, especially in 3D space.

Fortran IFS and Arpege Toolkit (FIAT): collection of selected Fortran utility libraries, extracted from the IFS/Arpege model, including drhook for tracing, gstats for timing, parkind to choose precision, mpl for MPI communication, mpi_serial for MPI dummy symbols compiled into static library, and other routines

Fortran Input Parser: typical application is the reading in of input parameters (input file) and material parameters (database) from two text files for e.g. a scientific code

fortranlib: Collection of personal scientific routines in Fortran

Fortran-Library: Code for geometry transformations, nonlinear optimization, Fourier transforms, clustering, statistics, mathematics, linear algebra, strings, and chemistry

fortran_notes: containers and advanced data structures, hash functions, and design patterns

FortranPatterns: Implementation of popular design patterns in Fortran, by Farhan J. Khan and zmiimz. This is intended to facilitate the community using Fortran for computationally expensive tasks. The main philosophy here is to make these patterns available for improving the reusability and efficiency of the code.

Fortran pathlib: Filesystem path manipulation utilities for standard Fortran, from scivision. Inspired by Python pathlib and C++17 filesystem.

fortran-sigwatch: library of routines to provide simple signal watching for Fortran programs, originally by Norman Gray, modified by Michael Hirsch. This allows a minimal level of control of a running program from outside it, for example to tell it to checkpoint itself on receipt of a signal.

fortran-sleep: OS/compiler-independent "sleep" Fortran subroutine that calls c_sleep, from scivision

Fortran User Defined Exceptions Handler (ForEx): Fortran 2003 project taking advantage of the C preprocessor capabilities in order to emulate exception handling, by victorsndvg

FortranUtilities: functions for strings, numbers, precision, statistics and files, by Emilio Castro

fortran_utilities: procedures to add colour to output via ANSI colour codes, create a progress bar, turn variables into strings, and print the time, by Lewis McMillan

fortran-utils: Various utilities for Fortran programs, including types, constants, sorting, saving/loading 2D arrays, meshes, cubic splines, saving/loading PPM images, Lapack interface, HDF5 interface, special functions, and optimization, by Ondrej Certik et al.

fortran-zlib: collection of Fortran 2018 ISO_C_BINDING interfaces to selected zlib functions, by interkosmos. Zlib is a lossless data-compression library.

ForTime: provides a timer object for measuring elapsed time, by Seyed Ali Ghasemi. It includes procedures for starting and stopping the timer, as well as calculating and printing the elapsed time in seconds.

ForUtils: Fortran 2008 utility functions and reusable classes, by cmbant

fparser: modern Fortran-based input file parser, from TREX-CoE. It uses a modified libfdf library.

fson: Fortran 95 JSON Parser, by josephalevin

ftime: basic timing routines in Fortran 2003, by William C. Dawn

functional-fortran: library for functional programming in modern Fortran

funx: Unix commands from Fortran via calls to C, by tranqv

Futilities: unsorted Fortran utility modules: codes for multidimensional spline interpolation and integration, successive over-relaxation solution of partial differential equations, a First In First Out memory buffer, a basic Message Passing Interface (MPI) queue scheduler, shuffle array indices, flatten a multidimensional array into 1D and revert the operation, and other topics, by Chris Ringeval

Futility: utilities for definition of kinds for intrinsic numeric data types, a unit test harness, definitions for some basic extensions to the Fortran language, geometry definitions and intersection routines, file wrapper functions, parallel wrapper functions, math utilities, a lightweight profiling interface, and other miscellaneous routines, from CASL

futility: collection of modern Fortran utilities, including some numerical subroutines and a module for simplified input and output of arrays, by Chris MacMackin

fuuid4: generates random (version 4) Universally Unique Identifiers (UUIDs). Fuuid4 can either wrap the libuuid generator, or use the bundled Mersenne Twister psuedo-random number generator (PRNG) to generate UUIDs itself.

fwalk: Fortran bindings by Andre Smit for libcwalk, a lightweight C path manipulation library for Unix and Windows

general-purpose-fortran: non-numeric tasks such as command-line parsing, string functions, date-and-time manipulation and display, interfacing to the C POSIX system routines, by urbanjost

HEDTOOLS: set of modelling utilities and tools (implemented as portable modules, not object-oriented) that have general applicability and are used for data conversion, input/output, random number generation and execution logging, by Sergey Budaev

hwloc-fortran: simple Fortran binding for HWLOC to get CPU count, with fallback to alternative methods, from scivision. Provides Fortran module hwloc_ifc with integer(int32) function get_cpu_count().

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

jlib: modules for buffers, file I/O, and memory management, by jhthorpe

json-fortran: user-friendly, thread-safe, and object-oriented API for reading and writing JSON files, written in modern Fortran, by Jacob Williams

Jumble: library of various utilities in Fortran 2003, by Lionel Guez

kdtree2: kd-tree implementation in C++ (and Fortran) by Matthew B. Kennel

library containing Some Useful Fortran Routines (libSUFR): code for command-line options and arguments, manipulation of dates and times, fitting functions to data, interpolation, random number generation, sorting, solving equations, statistics, and other topics, by Marc van der Sluys

M_args: module that provides for command line parsing using namelist syntax, by urbanjost

M_CLI2: cracks the command line when given a prototype string that looks very much like an invocation of the program, by urbanjost. A call to get_args(3f) or one of its variants is then made for each parameter name to set the variables appropriately in the program.

M_history: input line history editor, by urbanjost

M_kracken95: Fortran 95 version of the kracken(3f) procedure (and related routines) for command line parsing, by urbanjost

M_msg: convert all common variables to a string in Fortran using unlimited polymorphic variables, by urbanjost.

M_path: creates an OOP (Object Oriented Programming) interface to other modules in the General Purpose Fortran package, by urbanjost. It allows the typical components of a pathname on a POSIX system (Such as GNU/Linux, Unix and Cygwin) to be accessed easily, to render the full pathname of the path and to get basic file properties (permissions, size, ownership, ...).

M_readline: interface to the commonly available C procedure readline(3c). to provide a familiar command history interface for interactive programs, by urbanjost

M_sets: basic set functions reminiscent of those in Matlab: union, unique, intersect, setdiff, ismember, setxor, by urbanjost

M_stopwatch: package for measuring cpu and wall clock execution time by urbanjost, based on StopWatch. It supports the wall clock, CPU clock, and a breakdown of the CPU clock into user and system times.

oolong: object-oriented logging system by Ed Hone that aims to provide a simple, flexible logging interface that will enable a wide range of logging functionality for a wide range of model paradigms

paramcard: command-line parameter input made simple, by Takahiro Ueda

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

petaca: collection of modern Fortran modules that provide broadly useful capabilities -- things that the author has found himself using repeatedly across many projects. A unifying feature of the modules is their object-oriented interfaces and implementation

pFlogger: parallel Fortran logger based on the design of the Python logger, from Goddard-Fortran-Ecosystem

fortran_arithmetic: read keywords from an input file, identifies parameter definitions, and performs arithmetic operations to generate a new input file, by Fang Shi. The program was extracted from the finite element code PhiPsi.

progressbar: simple C library for drawing a progress bar on a memory mapped log file, designed to introduce as little overhead as possible, by G-Lorenz and giambagiamba. It is compatible with C++ and Fortran.

QDUtilLib: modules for numerical parameters, strings, reading and write matrices, and linear algebra, by lauvergn

Quantities for Fortran (quaff): makes math with units more convenient, by Brad Richardson et al. This library provides all the functionality necessary to almost treat quantities with units associated with them as though they were just intrinsic real values

reference-counter: object-oriented, extensible reference-counting utility for Fortran, by Damian Rouson et al.

Scientific Fortran Tools (SciFT): provides a wide range of mathematical routines such as random number generators, special functions, and high-level classes to manipulate strings, files parsing, matrices, grid-based numerical functions, data structures (lists, vectors, maps, graphs), and molecules, by Nestor F. Aguirre. It uses the Intel Math Kernel Library and has been tested with the Intel Fortran compiler.

SM3-Fortran: library with a Fortran interface SM3 by zoziha of GmSSL and its usage examples. The SM3 password hashing algorithm is a hash algorithm similar to SHA-256, which belongs to the Chinese national standard.

sourcery: utilities such as array functions, assertions, emulated intrinsic functions: findloc, emulated collective subroutines: co_sum, co_broadcast, user-defined collective subroutines: co_all, string functions, and classes for parallel data partitioning and gathering and the (Co-)Object pattern abstract parent, by Damian Rouson and Brad Richardson

stdlib: utilities, algorithms, and mathematics codes for a Fortran Standard Library, from fortran-lang. Has codes for sorting, statistics, strings, hashing, probability distributions, random number generation, numerical integration, and other numerical methods.

tictoc_fortran: TicToc (timer) class that calls cpu_time, by Wesley Cota

timer: module to get the number of seconds between two timestamps, by zoziha

TimerClass: object-oriented Fortran 2003 timer class, by Danny Vanpoucke

UniShellect: parses a JSON config file and loads a highly customizable menu of shells, interpreters, files, commands and possible arguments into any command line interface, by Lateralus138. This is inspired by the "hyper-shellect" plug-in for the "Hyper" terminal.

xslib - Extra-Small Library: library consisting of useful utilities and functions as stand-in for Fortran "standard" library, by JureCerar. Has modules for string handling, error handling, memory allocation, regression, timing, sorting, statistics, and other topics

ZstdFortranLib: implements missing functionality such as error handling, strings manipulation, system/environment interface & testing utilities, by zbeekman

Graphics, Plotting, and User Interfaces

7-Fortran-plots: demonstrates the usage of 7 DISLIN routines for data plotting, creating line graphs, color and contour plots, and surface, bar, and pie charts, by Shahid718

accis: plotting and graphics library by Ian Hutchinson. Related project: PLOTTRACES

button: library to use graphical buttons with PGPLOT, by Nicolás Cardiel

cairo-fortran: libcairo bindings for Fortran from the gtk-fortran project available as a separate fpm package, by Carlos Une

CHART_COUPE: Fortran plotting package base on NCL libraries, tuned for geophysical numerical model output, from meom-group

Contour_531: modern wrapper by Lionel Guez around subroutines of Jack Dongarra for determining sequences of points in the plane which may be used to draw contours through equal values of a surface, in module 531 of TOMS

Dislin_x_y_plot: generates plots from within a Fortran program nearly as easily as with the provided Dislin "quickplots", by Andi Zuend. However, unlike the quickplots, this module offers a lot more options for controlling the plot page, axis system and various curve properties. It also makes adding multiple x--y data sets (curves) to a single plot easy.

eggx-procall-2003: interfaces to the free X11 graphics library EGGX/ProCALL. The EGGX/ProCALL library provides fast and simple drawing routines on Linux, Unix, and Cygwin, directly callable from C or FORTRAN 77.

f03gl: project is derived from the pioneering work of Anthony Stone and Aleksandar Donev for creating a complete Fortran interface to the OpenGL library along with GLU and GLUT libraries using the F2003 ISO_C_BINDING intrinsic module, by dcesari

fdata2pyplot: simple module for passing Fortran output to a Python script to later use Matplotlib to make a figure, by Jiachen An

ForCAD: library for geometric modeling, supporting B-Spline, NURBS, Bezier, and Rational Bezier curves, surfaces, and volumes, by Seyed Ali Ghasemi

ForColormap: small colormap library independent of any graphical toolkit, by Vincent Magnin et al. It just converts a real value to RGB values, that can be used with any toolkit offering bitmap drawing.

forIGES: utilities for reading and writing a subset of the IGES CAD file entities described in the IGES 5.3 specification, by rweed. The focus of forIGES is on geometric entities such as NURBS curves and surfaces.

ForImage: library for working with image files (PNM format) and managing colors effectively, by Seyed Ali Ghasemi

fortran2018-asymptote: generate drawings using the Asymptote Vector Graphics Language, by Kevin Matthes

fortran-dialog: wrapper module by interkosmos around dialog to create text user interfaces in Fortran 2008, similar to pythondialog for Python

fortran-gdlib: Fortran binding for the GD graphics library, by Johann Andreas Weber

fortran-graphics: graphics library written in OpenGL, by Edward Higgins

Fortran Intuitive Graphics (fig): provide intuitive graphics capabilities, by AnonMiraj. It offers basic 2D primitives such as lines, circles, ellipsis, and rectangles for creating graphical representations.

fortran-sdl2: collection of ISO C binding interfaces to Simple DirectMedia Layer 2.0 (SDL 2.0), for 2D and 3D game programming in Fortran, by interkosmos

FortGL: 3D software rendering in pure Fortran, by lewisfish

fortran-grace: collection of Fortran 2018 interfaces to the scientific plotting tool Grace/XmGrace, by interkosmos. This library covers the FORTRAN 77 and the C API of Grace. This library covers the FORTRAN 77 and the C API of Grace.

fortran-motif: collection of ISO C binding interfaces to X/Motif, to create graphical user interfaces for Unix in Fortran 2008, by interkosmos. The library includes selected bindings to Xlib, Xt, Xm, and the XmHTML widget to render HTML 3.2 inside a Motif widget (optional).

fortran-simplify: module to reduce the over-sampled resolution of a polyline, implementing the nth_point, radial_distance, perpendicular distance, and Reumann-Witkam algorithms, by Joshua Aiken. This process can be useful when working with data that is noisy but usable with a significantly reduced resolution.

fortran_stb_image: bindings by Lewis McMillan for stb_image and stb_image_write, for reading, loading, and processing images

Fortran Terminal (fortty): create colorful terminal applications in Fortran, by Sebastian Ehlert

fortran-xlib: collection of ISO C binding interfaces to Xlib for Fortran 2003, by interkosmos. Currently, only a subset of Xlib is implemented. In order to work with XPM files, interfaces to libxpm are included.

fplot: provides a convenient interface for plotting with Gnuplot, by jchristopherson

ftk: provides a straightforward means to build graphical user-interfaces in Fortran based on Tcl/Tk, by Arjen Markus. In its current state it is proof of concept, not a full-fledged library.

graffer: interactive tool for generating plots of data and/or functions, by James Tappin. The original graffer was an IDL program. This version provides most of the same functionality in a Fortran program using gtk-fortran and plplot for the GUI and plotting respectively. To display functions gdl (gnudatalanguage) or IDL is required.

gtk-fortran: cross-platform library to build Graphical User Interfaces (GUI), by Vincent Magnin et al. Gtk-fortran is a partial GTK / Fortran binding 100% written in Fortran, thanks to the ISO_C_BINDING module for interoperability between C and Fortran. gtk-fortran-extra has extra examples under an MIT license

KVS.fortran: interface by Naohisa Sakamoto and Go Tamura to the Kyoto Visualization System (KVS) for scientific simulation data sets

libgnuplot-fortran: routines for plotting inside Fortran using Gnuplot, by JoseAntonioLattice

M_attr: set terminal text attributes using ANSI escape sequences

M_calcomp: old graphics library used in conjunction with M_draw for work with old codes, by urbanjost. The CALCOMP library is a simple set of FORTRAN callable graphic routines that allows users to quickly construct plots.

M_color: convert between RGB color values and other common color models, by urbanjost

M_draw - low level vector graphics library: base graphics library intended for use with Fortran although largely written in C. It is based on the public domain VOGLE graphics library. It allows for creating vector-based graphics with a variety of output devices.

M_fixedform: simplifies creating a TUI (Terminal User Interface) with Ncurses from Fortran, by urbanjost. It facilitates creating simple forms in terminal windows.

M_ncurses: module that allows use of the C Ncurses library for controlling and formatting terminal displays, by urbanjost

M_pixel: creates pixel images with a vector-oriented graphics library that emulates a subset of the M_draw vector graphics library, by urbanjost. It is supplemented with additional modules that read and write GIF files, including animated GIFs.

M_slices: basic slice plot module based on M_draw(3f), by urbanjost. A 3-d surface is plotted by plotting slices through the volume which are parallel to the x-y plane.

ogpf: Object-Based Interface to GnuPlot from Fortran, by kookma

PGPLOT: library for making simple scientific graphs. This version has patches by Peter Teuben et al.

PG2PLplot: facilitate the transition from Fortran code linked against PGPlot to linking it against PLplot, which is open source and maintained. Currently, many PGPlot routines are included, but the code is by no means exhaustive.

PlPlotLib: wrapper for PlPlot inspired by the interface of matplotlib, by zoziha. It is intended to fill the need for rapid feedback while developing numerical simulations, and does not replace more sophisticated packages such as matplotlib or even direct use of PlPlot.

plplot-windows-bin: provides a binary distribution for PLplot on Windows, even if only ad hoc and limited to Fortran, by Arjen Markus. There are examples of calling PLplot from Fortran.

pltFor: Fortran-Python interface library to plot figures directly in Fortran, by Damien Minenna

PyFerret: Ferret is an interactive computer visualization and analysis environment designed to meet the needs of oceanographers and meteorologists analyzing large and complex gridded data sets, from NOAA/PMEL. It runs on recent Unix and Mac systems, using X windows for display. PyFerret, introduced in 2012, is a Python module wrapping Ferret.

pnmio: I/O routines for portable anymap image files (.pbm, .pgm, .ppm), by Jeff Irwin. Currently only output routines are provided.

pyplot-fortran: generate plots from Fortran using Python's matplotlib.pyplot, by jacobwilliams

RayTran: ray tracer in pure Fortran, by lewisfish

tikz-fortran: module that generates figures using PGF/Tikz, a pair of languages for producing vector graphics, by Hui-Jun Chen

topdrawer: program for scientific data plotting -- a keyword-driven interface to the SLAC Unified Graphics system, designed specifically to generate physics graphs with minimal specifications

vtkmofo: VTK format using modern Fortran, by porteri

Interoperability

Advanced Options and Tables in Universal Scripting (AOTUS): wrapper around the C-API of the Lua scripting language, allowing a convenient usage of Lua scripts as configuration files in Fortran applications.

arrayfire-fortran: Fortran wrapper for ArrayFire, a general purpose GPU library.

arrow-fortran: automatic bindings by Ludovico Nicotina and Vincent Magnin to the C API for the arrow project. Arrow is a language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware like CPUs and GPUs.

call_py_fort: call Python from Fortran, by Noah D. Brenowitz. Operates by pushing Fortran arrays into a global python dictionary, calling Python functions with this dictionary as input, and then reading NumPy arrays from this dictionary back into Fortran.

call-rust-from-fortran: shows how to call Rust from Fortran, by Luca Ciucci

cuda_demo: minimal working example (MWE) demonstrating how to use CUDA with Fortran using the ISO_C_BINDING module, using gfortran and g++, by Ramón L. Panadés-Barrueta

Cython_ISO_Fortran_binding: code for using ISO_Fortran_binding.h from Cython, by Yuichiro Sakamoto. By using ISO_Fortran_binding.pxd, it is possible to call Fortran from Cython in the same way as one calls Fortran from C.

dopey: library for passing Fortran dope vectors to C++, from Los Alamos National Laboratory

dynload-julia: dynamically load Julia from Fortran, by brocolis

examples: examples of Fortran and C++ interaction, by Pat Nichols

F2Py Sockets: example of how to use sockets to transfer data from Fortran to Python and viceversa, by Bernat Font

f2py-with-derived-types: demonstrates how to use f2py with Fortran derived types with type-bound procedures, by Nick Wogan

fckit: Fortran toolkit for interoperating Fortran with C/C++, from ecmwf

Fcpp: seamless interoperability between C++ containers and Fortran arrays, by Ivan Pribec. Two classes are provided, cdesc and cdesc_ptr, that act as adaptors between C++ and Fortran, helping to re-establish type and attribute safety when moving between languages.

fcppstring: Fortran wrapper for C++ strings, by Will Dickson

flibcpp: uses SWIG-Fortran to expose useful functionality from the C++ standard library to Fortran 2003 application developers. It generates self-contained Fortran modules with native proxy classes and functions which wrap the C++ standard library.

flibhpc: uses SWIG-Fortran to generate Fortran-2003 wrappers to common high performance computing (HPC) libraries. It can be used as a support library for other libraries that want to generate MPI-friendly Fortran wrappers to their code, or used by application developers who want to adapt Fortran CUDA/OpenACC code to their C++ kernels.

Fortran-C-interoperability: examples of Fortran interoperation with C, by HugoMVale

fortran-cython-examples: examples for how to wrap Fortran with Cython, by Nick Wogan

fortran-in-go: shows how to compile Fortran code into a shared object with relative memory positioning (-fPIC) and allow Go to dynamically link it at compilation time, by Ryan Wans

fortran-in-python: examples of how to build and call Fortran modules in Python using ctypes and f2py, by HugoMVale

FortranInterop: documentation and example code on how to make Fortran interoperate with the .NET framework, covering callbacks, strings and mixed mode assemblies, by Christ Akkermans, with links to three blog posts.

Fortran-Lua-hook library (flook): allows abstraction of input files to be pure Lua files to enable configuration of internal variables through an embedded Lua interpreter. Any valid Lua script can be executed from within any fortran application at points where the application creates Lua channels. Its main usage is the ability to change run-time variables at run-time in order to optimize, or even change, the execution path of the parent program.

fortran-modbus: interface bindings to libmodbus, for Modbus RTU/TCP access, by interkosmos

forpy: use Python in Fortran and vice versa

FortCL: Fortran wrapper library providing OpenCL functionality, from stfc

fortran-c-cpp-interface: interoperability examples between C, C++ and Fortran, from scivision. Uses the standard C binding to define variable and bind functions/subroutines.

fortran-curl: collection of ISO C binding interfaces to libcurl for Fortran 2008, by interkosmos. Compilation has been tested with GNU Fortran 10 and cURL 7.74.0.

Fortran Language Compatibility Layer (FLCL): API for Fortran to C and C to Fortran multi-dimensional array interoperability, part of the Kokkos C++ Performance Portability Programming EcoSystem

fortran-lua54: Fortran 2008 interface bindings to Lua 5.4, from interkosmos. There is also fortran-lua53.

Fortran-RInside: demonstration of Fortran interface to Rinside, for calling R from Fortran, by ivan-pi

fortran-tcl86: ISO_C_BINDING interface library for interoperability with Tcl/Tk 8.6, by interkosmos, allowing the user to embed Tcl into Fortran, create Tcl extensions in Fortran (with Tcl Stubs), access (a subset of) the Tcl/Tk C API from Fortran, use Tcl as an evaluatable configuration file format, and add graphical user interfaces to Fortran programs.

fortran-unix: Fortran 2008 ISO C binding interfaces to selected POSIX and SysV types, functions, and routines on 64-bit Unix-like operating systems, by interkosmos

Fortran Unsigned Wrapper (funsignedwrapper): module with functions for accessing unsigned variables in standard Fortran 2008, by Johann Andreas Weber

fortran-xmpp: interface bindings to the XMPP (Extensible Messaging and Presence Protocol) client library libstrophe, by interkosmos.

fpydemo: demonstration of packaging a command line tool written in Python and Fortran, by Saikat Banerjee. The minimum working example has native Fortran codes compile to a shared library with F2PY, Lapack routines, and uses mpi4py for MPI parallelization.

hwinfo-fortran: provides access to hardware information using OS APIs for Unix-like operating systems, by Shinobu Amasaki

interfacing_fortran_from_python: training course -- interfacing Fortran and Python: using cffi, ctypes and Cython, by Oscar Mojica. It focuses on the explicit C interface route, that is, coding explicit C interface in Fortran and calling that with Python libraries.

java-f90-jni-dll: demonstrates calling a Fortran dynamic link library (DLL) from Java bean by using JNI/JNA, by John Van Derton

Linking-f90-C-C-and-CUDA: Initial steps for calling C, C++ and CUDA from Fortran using the iso_c_binding, by Felipe_SC

MatlabAPI: Fortran 95 Matlab API

MatlabFortran: easily export data from Matlab to Fortran and back, by Alessandro Di Nola

M_process: read and write lines to or from a process from Fortran via a C wrapper, by urbanjost

M_system: module that allows Fortran to call commonly available C routines that perform basic system operations like creating and deleting files and directories, changing and querying file permits, getting basic ID and process information, ... and other POSIX system requests, by urbanjost

NPY for Fortran: allows saving numerical Fortran arrays in Numpy's .npy or .npz format, by MRedies

pmem_fortran_interface: interface by Adrian Jackson to the libpmem library from the PMDK set of libraries. The aim is to allow persistent memory to be programmed directly from Fortran, rather than requiring every Fortran code developer to create their own interface or C/C++ code to exploit this functionality.

popen-fortran: module for popen() by Jacob Williams, which executes a command specified by a string argument, creates a pipe between the calling program and the executed command, and returns a pointer to a stream that can be used to either read from or write to the pipe.

PythonFortran: simple example for Python calling Fortran codes in MPI, by Takao Kotani. The main program, which calls Fortran subroutines, is in Python invoking MPI by mpi4py.

python-fortran: Python-Fortran bindings examples, by Pierre Navaro

python_from_fortran: examples of calling Python from Fortran using CFFI or Forpy, by halungge

sockets-in-Fortran: demonstration of a Fortran code communicating through a socket with a a C code that acts as a client in a socket based server/client communication, by Philippe Preux

statamod: provides read/write access for Stata datasets from within Fortran, by Andrew Shephard

sysexits-f18: Fortran 2018 version of the sysexits.h codes, by Kevin Matthes

tcp-client-server: minimal TCP client and server in Fortran, used to teach interoperability with C. Companion code for Chapter 11 of Modern Fortran: Building Efficient Parallel Applications, by Milan Curcic.

uint-fortran: unsigned integer, 16 or 32 bit, that is interoperable with C, by Shinobu Amasaki

Interpolation

akima: 1-Dimensional Akima spline implementation with derivatives not only of the function, but also with respect to the original data points, by andrewnin. An Akima spline is a polynomial spline method that avoids overshooting issues common with many other splines (e.g., cubic splines), resulting in a more natural curve.

bspline-fortran: Multidimensional B-Spline Interpolation of Data on a Regular Grid, by Jacob Williams

DelaunaySparse: interpolation in medium to high dimensions via a sparse subset of the Delaunay triangulation, from vtopt

finterp: performs multidimensional (1D-6D) linear interpolation of data on a regular grid, by Jacob Williams. The code is written in modern Fortran (2003/2008) and is object-oriented and thread safe.

FOLLIA: evaluation of Lagrange coefficients and interpolation on uniform and non-uniform one-dimensional grids, by giacrossi

fortran-rbf: implementation of radial basis functions (RBF), by dongli

grid_interpolation: interpolates between regular and unstructured grid (e.g. triangle mesh), by Christian Steger. The former interpolation is performed with bilinear interpolation, the latter with inverse distance weighting (IDW) and the application of a k-d tree to efficiently find the nearest neighobours.

HiPPIS: polynomial-based data-bounded and positivity-preserving interpolation software for function approximation and mapping data values between structure (uniform and nonuniform) meshes. Associated preprint: Algorithm xxxx: HiPPIS A High-Order Positivity-Preserving Mapping Software for Structured Meshes, by Timbwaoga A. J. Ouermi, Robert M Kirby, Martin Berzins (2023)

interpolation2d3d: interpolation in two and three dimensions, by Arjen Markus. The packages srfpak, sphpak, qshep2d and qpshep3d implement an object-oriented interface to the interpolation packages by Robert Renka.

interpolation: Matlab/Octave-like interpolation functions such as linear and PCHIP (Piecewise Cubic Hermite Interpolating Polynomial), by Jiří Fürst

kernelyze-base: computes low-rank approximations of two-variable functions ("kernels"). For many practically useful two-variable functions ("sign-regular kernels"), KernelyzeBase can compute new approximations which numerically achieve the smallest possible worst-case error among all rank-n approximations.

lagrange_interpolator: OOP library for 1 and 2-dimensional Lagrange interpolation, by Jon Lo Kim Lin

Mean-preserving interpolation (mp-interp): implements four approaches for mean-preserving interpolation as might be applied, for example, to the interpolation of pseudo-daily values from monthly means, that when averaged, reproduce those monthly means, by Pat Bartlein

NdSpline: multidimensional spline interpolation based on the B-spline method, by Takayuki Miyagi. For details, see G. D. Knott, Interpolating cubic splines, Springer 2000.

PCHIP: piecewise cubic Hermite interpolation of data, by Jacob Williams. It features software to produce a monotone and "visually pleasing" interpolant to monotone data.

Piecewise Polynomial Reconstruction (PPR): high-order accurate piecewise polynomial reconstruction library, by Darren Engwirda

pytspack: Python wrapper by Barry Baker and Zachary Moon of Robert J. Renka's TSPACK, a curve-fitting package based on exponential tension splines with automatic selection of tension factors. TSPACK is a curve-fitting package based on exponential tension splines with automatic selection of tension factors.

regridpack: routines for interpolating values between one-, two-, three-, and four-dimensional arrays defined on uniform or nonuniform orthogonal grids, from Jacob Williams

SHEPPACK: modified Shepard algorithm for interpolation of scattered multivariate data, by William Thacker and Layne Watson. It is Algorithm 905 of ACM Transactions on Mathematical Software.

sosie: SOSIE is Only a Surface Interpolation Environment, by brodeau

spharm-interp: MATLAB and Fortran routines for interpolation from scattered points on the sphere via spherical harmonics, by Alex Barnett et al.

sprint: Spherical Remapping and Interpolation library, from dongli

stripy: Python interface from underworldcode to TRIPACK and STRIPACK Fortran code for (constrained) triangulation in Cartesian coordinates and on a sphere. Stripy is an object-oriented package and includes routines from SRFPACK and SSRFPACK for interpolation (nearest neighbor, linear and hermite cubic) and to evaluate derivatives.

ttcross: cross interpolation of high-dimensional arrays in tensor train format. An associated preprint is Parallel cross interpolation for high-precision calculation of high-dimensional integrals (2019), by Sergey Dolgov and Dmitry Savostyanov.

WenOOF: Weighted Essentially Non-Oscillatory (WENO) interpolation, from Fortran-FOSS-Programmers

Linear Algebra

aldaas2021robust: code asssociated with paper by Al Daas, Hussam and Jolivet, Pierre and Scott, Jennifer A., "A Robust Algebraic Domain Decomposition Preconditioner for Sparse Normal Equations", 2021, SIAM Journal on Scientific Computing

amg4psblas: Algebraic Multigrid Package based on PSBLAS (Parallel Sparse BLAS version 3.7), for the iterative solution of large and sparse linear systems, by sfilippone et al.

arpack-ng: collection of Fortran77 subroutines designed to solve large scale eigenvalue problems, from opencollab

ARPACK_PARPACK: solves large eigenvalue problems in double precision in standard Fortran 90, by KingJGod

Automatically Tuned Linear Algebra Software (ATLAS): applies empirical techniques in order to provide portable performance. At present, it provides C and Fortran77 interfaces to a portably efficient BLAS implementation, as well as a few routines from LAPACK.

bddcml: massively parallel solver of systems of linear equations using Multilevel Balancing Domain Decomposition based on Constraints (BDDC), by sistek

blas-interface: interface declarations for basic linear algebra subprograms, by Sebastian Ehlert

BLZPACK: set of subprograms to compute the eigenvalues and eigenvectors (x) of the "standard" eigenvalue problem or the "generalized" eigenvalue problem for sparse symmetric matrices, by Osni Marques

ButterflyPACK: software for rapidly solving large-scale dense linear systems that exhibit off-diagonal rank-deficiency, by liuyangzhuan

chol-rev: reverse-mode routine written in FORTRAN 77, modeled after the fast LAPACK Cholesky routine DPOTRF, which uses blocked level-3 BLAS routines

cosma_fortran_example: minimal example of how to call Communication-Optimal-Matrix-Multiplication (COSMA) pxgemm from Fortran, by Moritz Leucke

cyclic-banded-matrix: solves cyclic banded matrices, by mostlyharmlessone

DBCSR: Distributed Block Compressed Sparse Row matrix library, by cp2k

diaglib: library of matrix-free iterative algorithms to compute a few eigenvalues and eigenvectors of large matrices, by Ivan Gianni et al. The available algorithms are locally optimal block preconditioned conjugate gradient and Davidson-Liu.

DLA-Future-Fortran: interface for DLA-Future, a C++ task-based linear algebra library providing GPU-enabled distributed eigensolvers, by Rocco Meli et al.

EigenExa: high-performance parallel eigenvalue solver, from the RIKEN Center for Computational Science, that works on many cutting-edge HPC platforms, including the K Computer

Eigensolver_gpu: generalized eigensolver for symmetric/hermetian-definite eigenproblems with functionality similar to the DSYGVD/X or ZHEGVD/X functions available within LAPACK/MAGMA, by Josh Romero et al. This solver has less dependencies on CPU computation than comparable implementations within MAGMA, which may be of benefit to systems with limited CPU resources or to users without access to high-performing CPU LAPACK libraries.

Eigenvalue SoLvers for Petaflop-Applications (ELPA): scalable eigensolver for dense, symmetric (Hermitian) matrices

eigensolvers based on unitary core transformations (eiscor): subroutines for accurately and efficiently solving matrix eigenvalue problems using essentially 2x2 unitary matrices. An associated paper is Jared L. Aurentz, Thomas Mach, Raf Vandebril, and David S. Watkins. Fast and stable unitary QR algorithm. Electronic Transactions on Numerical Analysis. Vol. 44, pp. 327-341. 2015.

expokit: matrix exponential package

FLAPWxHZ: Hari-Zimmermann complex generalized hyperbolic SVD and EVD. Associated paper: The LAPW Method with Eigendecomposition Based on the Hari--Zimmermann Generalized Hyperbolic SVD, by Sanja Singer, Edoardo Di Napoli, Vedran Novaković, and Gayatri Čaklović, SIAM Journal on Scientific Computing, Vol. 42, Iss. 5 (2020)

FlexiBLAS: wrapper library that enables the exchange of the BLAS (Basic Linear Algebra System) and LAPACK (Linear Algebra PACKage) implementation used in an executable without recompiling or re-linking it, by Martin Köhler and Jens Saak

ForBLAS: compile the BLAS and their drivers using the Fortran Package Manager, by Seyed Ali Ghasemi. ForLAPACK does so for LAPACK. ForSVD provides functions and subroutines for calculating the singular value decomposition (SVD) of a matrix, calling LAPACK. ForEig calculates eigenvalues and eigenvectors using LAPACK or MKL. ForPCA does principal component analysis (PCA). ForInv calculates the inverse and pseudoinverse of a matrix.

ForDot: overloads the dot_product function to enable efficient dot product with/without coarrays, by Seyed Ali Ghasemi

ForMatMul: library that overloads the matmul function to enable efficient matrix multiplication with coarrays, by Seyed Ali Ghasemi

fortran_csr: library to construct and multiply a matrix in compressed sparse row (CSR) format, by Yuki Nagai

Fortran_Davidson: Modern Fortran implementation of the Davidson diagonalization algorithms, from NLESC-JCER

fortran-lapack: modern Fortran implementation of the Reference-LAPACK library, by Federico Perini. The reference Fortran 77 library is automatically downloaded from its master repository, and processed to create Modern Fortran modules with full explicit typing features.

fortran_lsp: Fortran routines from "Solving Least Squares Problems" by C. Lawson and R. Hanson, with improved interfaces, from ivan-pi

FortranMatrix: code for matrix multiplication, trace, hermitianization, special matices, Pauli matrices, sorting, as well as more complicated calculations like computing eigenvalues, eigenvectors, determinants, Pfaffians, inverse of a matrix, and tensor products, calling Lapack and BLAS, by Konstantinos Anagnostopoulos

FSPARSE: object-oriented API for sparse matrices with some basic kernels and utility functions, such as conversion from dense matrices and matrix-vector products, by jalvesz. Supported sparse matrix types are COordinate Sparse format (COO), Compressed Sparse Row format (CSR), Compressed Sparse Column format (CSC), and ELLPACK (ELL).

GEVP-PDHGEQZ: parallel ScaLAPACK-style package of routines for solving nonsymmetric real generalized eigenvalue problems, from NLAFET

HSSPACK: fast algorithms for the symmetric tridiagonal eigenvalue problems, the bidiagonal SVD and the banded DC problems, which are based on the hierarchically semiseparable (HSS) matrix techniques. Associated paper: An improved divide-and-conquer algorithm for the banded matrices with narrow bandwidths, by Xiangke Liao et al., Computers & Mathematics with Applications (2016)

insitu_array: in-place array transpose for Fortran, by Paul Stryck. Module uses a 1D array for storage and mimics differently shaped views to the same underlying data via pointer reassignment.

JACSD: utilities for the Jacobi-type (G/H)SVD algorithms and beyond, plus a Cosine-Sine Decomposition tester, by Vedran Novaković. Associated projects here

JKogb: software supplement for the paper Kogbetliantz-type algorithm for the hyperbolic SVD, by Vedran Novakovi & Sanja Singer, Numerical Algorithms (2022). Also KogAcc, a portable Kogbetliantz-type SVD for general matrices

keksipurkki-demos-qr: implicit QR method, by Elias Toivanen

Lanczos_Iterator: Lanczos program for large sparse Hermitian matrices, by F. D. M. Haldane -- Fortran with a C99 interface. It obtains maximally-accurate low-lying eigenvalues and the corresponding orthonormal eigenvectors.

lapack: subroutines for solving the most commonly occurring problems in numerical linear algebra

LAPACK_Examples: example programs showing how to call LAPACK driver and computational routines (Fortran double precision), from numericalalgorithmsgroup

LAPACK95: CMake and Meson enhanced mirror of Netlib LAPACK95, from SciVision

libsparse: Fortran 2003 library that provides objects to create and handle rectangular and square sparse matrices using different formats: Linked List, COOrdinate storage (with elements stored using a hashing function), or Compressed Row Storage, by Jeremie Vandenplas. The library relies on different libraries, such as BLAS/LAPACK libraries, PARDISO (at this stage, Intel MKL PARDISO), and METIS 5.

LIBXSMM: library for specialized dense and sparse matrix operations as well as for deep learning primitives such as small convolutions, from hfp

LightKrylov: provides a simple set of Krylov-based techniques to study the spectral properties of the exponential propagator. Associated paper: R. S. Frantz, J.-Ch. Loiseau, and J.-Ch. Robinet. Krylov methods for large-scale dynamical systems: applications in fluid dynamics. Appl. Mech. Rev., 2023.

Lin_Alg: pedagogical codes for Cholesky, QR, and Hessenberg decompositions, Gram-Schmidt orthonormalization, matrix inversion, RQ process diagonalization + shift method, Jacobi diagonalization, iterative power diagonalization + shift method, eigenvectors using iterative method, and A.x = b solution with residual improvement, by Quentin Marecat

linalg: linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines, by jchristopherson

LinAlgf90: modern Fortran wrappers for the eigenvalue functionality of Lapack, by Takayuki Miyagi

linalg_fortran: interface to Lapack procedures that invert matrices, compute determinants, compute eigenvalues and eigenvectors of symmetric or Hermitian matrices, and compute UAU.T, by Euler-37

linear_system_solvers: wrappers by M-Badri for libraries solving systems of linear equations, including Lis: Library of Iterative Solvers for Linear Systems

LRAP: subroutines for the constrained low-rank approximation of matrices and tensors: low-rank nonnegative matrix and tensor approximation, low-rank nonnegative matrix completion, and low-rank matrix and tensor approximation in the maximum norm, associated with paper On the distance to low-rank matrices in the maximum norm., by Stanislav Budzinskiy, Linear Algebra Appl (2024)

LSMR: code for sparse equations and least squares, originally by David Fong and Michael Saunders, updated by Jacob Williams

LSQR: Fortran 2008 edition of LSQR, a conjugate-gradient type method for solving sparse linear equations and sparse least-squares problems, by Jacob Williams.

madrigal: matrix derivative tests for forward and reverse mode automatic differentiation, by R. Quast

MARIA-Fortran: library for working with low-rank matrices and tensors: truncated SVD, truncated SVD with sketching, adaptive cross approximation with rook pivoting, cross approximation based on the maximum-volume principle, cross approximation based on the maximum-projective-volume principle, elements of Riemannian geometry of fixed-rank matrices, and tensor-train SVD, by Stanislav Budzinskiy

Matran: wrapper that implements matrix operations and computes matrix decompositions using Lapack and the Blas, by G. W. Stewart. Although Matran is not based on a formally defined matrix language, it provides the flavor and convenience of coding in matrix oriented systems like Matlab or Octave.

Matrix Equations PACKage (MEPACK): library for the solution of dense Sylvester-like matrix equations, by Martin Köhler. Martin Köhler

M_blas: Fortran BLAS library implemented as a free-format module, by urbanjost

mfi: modern Fortran Interfaces to BLAS and LAPACK, by 14NGiestas

Minimum Split Checkerboard Decomposition (MSCBDECOMP): obtain sparse representations of the matrix exponential, by CaptainSifffl. Reference: Minimal Split Checkerboard Method for Exponentiating Sparse Matrices and Its Applications in Quantum Statistical Mechanics, by Che-Rung Lee, SIAM J. Sci. Comput. 35-2 (2013), pp. C143-C171, https://doi.org/10.1137/110838716

M_LA: small collection of linear algebra routines, including reshaping an array, creating a magic square array, and computing the determinant and inverse of a matrix, by urbanjost

minila: lightweight, standalone set of common linear algebraic operations for vectors and matrices, by Gabriel Brown

minres: implementation of MINRES by Will Dickson based on the original Fortran 90 code by Chris Paige, Sou-Cheng Choi, and Michael Saunders, which solves sparse symmetric systems Ax = b

moa-fortran: Mathematics of Arrays library for modern Fortran, by Wileam Y. Phan

Monolis: Morita's non-overlapping / overlapping domain decomposition based linear equation solver. Has both a direct solver (LU) and many iterative solvers

MPI_GEVP: Fortran 90+ program for solving the generalized eigenvalue problem on distributed computers, by sims-code

nnls: non-negative least squares (NNLS) solver calling BLAS and LAPACK, by cuamll

NTPoly: massively parallel library for computing the functions of sparse matrices, by william-dawson

OpenBLAS: optimized BLAS library based on GotoBLAS2 1.13 BSD version, by xianyi

PaScaL_TDMA: efficient and scalable computational procedure to solve many tridiagonal systems in multi-dimensional partial differential equations, from MPMC-Lab

pcgcoarray: Coarray Fortran library and programs for running some iterative solvers in parallel, by Jeremie Vandenplas. The iterative solvers currently implemented are Chebyshev, Conjugate Gradient (CG), Preconditioned CG (PCG), and Flexible PCG.

pfapack-sys-rs: Rust bindings by Dimitri Bonanni-Surprenant to the Fortran library pfapack, a library by Michael Wimmer for numerically computing the Pfaffian of a real or complex skew-symmetric matrix

PFLARE: library to solve linear systems in parallel with PETSc, with interfaces in C, Fortran, and Python. An associated paper is AIR multigrid with GMRES polynomials (AIRG) and additive preconditioners for Boltzmann transport, by Steven Dargaville et al., Journal of Computational Physics (2024).

PROPACK: set of functions for computing the singular value decomposition of large and sparse or structured matrices

PSBLAS3: Parallel Sparse Basic Linear Algebra Subroutines, from sfilippone

psfun: library under development focused on the computation of matrix-function vector products equation for large and sparse matrix in a distributed setting, by Fabio Durastante and Salvatore Filippone

PSMMA_Git: Parallel Structured Matrix Multiplication Algorithms for low-rank displacement matrices, including Toeplitz, Hankel, Cauchy and Vandermonde matrices, by Shengguo Li.

qrupdate-ng: library for fast updating of QR, LU, and Cholesky decompositions, by Jaroslav Hajek, updated by M. Koehler and C. Himpe

scalapack: library of high-performance linear algebra routines for parallel distributed memory machines. ScaLAPACK solves dense and banded linear systems, least squares problems, eigenvalue problems, and singular value problems.

ScalapackFx: modern Fortran 2003 wrappers for the routines of the ScaLAPACK library, by Ben Hourahine et al. Currently mostly the routines related to diagonalization are covered.

SEVP-PDHSEQR-Alg953: parallel ScaLAPACK-style library for solving nonsymmetric standard eigenvalue problems, using the Hessenberg QR algorithm with aggressive early deflation on distributed memory HPC systems, from NLAFET

Sherman-Morrison: matrix-inversion algorithms based on the paper of P. Maponi, "The solution of linear systems by using the Sherman–Morrison formula", doi:10.1016/j.laa.2006.07.007, from TREX-CoE

SOLVERS_BCGSTAB_GMRES: BiConjugate Gradient STABilization (BiCGSTAB) and Generalized Minimum RESidual (GMRES) methods for solving sparse linear systems, with an application to calculating of three-dimensional fields, by J. Sochor

sparse-fortran: sparse array examples using MUMPS, Scalapack, BLACS, PARDISO with CMake and Meson, from SciVision

sparse_fortran: derived types for sparse matrices in COO and CSR format with functions for matrix multiplication, by Euler-37

Sparse Iterative parallel linear solver: developed in Fortran/OpenMP by Tue Bosen, and designed with focus on speed especially in parallel. The code uses a block-splitting of the linear system without any overlap. It is intended to be used on matrices which have already been reordered using a reverse Cuthill-Mckee reordering.

SParse matrices in Object-Oriented Fortran (SPOOF): modern, object-oriented Fortran library for sparse matrix computations, by Sam Harrison. It largely draws on the SPARSKIT library, adding an object-oriented interface to improve usability.

Sparse Parallel Robust Algorithm Library (SPRAL): library for sparse linear algebra and associated algorithms. It is primarily developed by the Numerical Analysis group at STFC Rutherford Appleton Laboratory.

Spectrum-Revealing CUR (SR-CUR): tool for the low rank CUR decomposition of sparse matrices, by Onyebuchi Ekenta. SR-CUR implements a novel CUR decomposition method that allows it to scale to larger matrices and produce more accurate factorizations than previous methods.

SpLLT: sparse direct solver for computing the solution of symmetric positive definite linear systems, from NLAFET. The factorization phase, which is the most computationally intensive part, is based on a task-based Cholesky algorithm and the parallel code is implemented using a runtime system.

STCollection: contains matrices that have been used for testing LAPACK's symmetric tridiagonal eigensolvers and bidiagonal SVD algorithms. The collection includes symmetric tridiagonal matrices and (upper) bidiagonal matrices. The original set of matrices in the collection has been described in Marques, Demmel, Voemel, and Parlett, A Testing Infrastructure for Symmetric Tridiagonal Eigensolvers, ACM TOMS, 35:2008.

TensorTools: modern Fortran library for tensor calculus, by Lukas Lamm

transpose-free Quasi Minimal Resdiual library for GPUs (tfQMRgpu): solves linear equations for several right hand sides (RHSs) at a time using vectorization over CUDA threads, for block sparse matrices in BSR format, by Paul Baumeister et al. Written in CUDA C and callable from Fortran.

tt-fort: Fortran computing core of the TT-Toolbox. It also includes two slightly customized libraries for doing fast local solvers in eigenvalue and dynamical problems.

vanhuffel: partial total least squares routines from Sabine Van Huffel

Visual-Fortran-Solvers: linear equation solvers, including preconditioned conjugagate gradient, by Bojan Niceno, adapted from Numerical Analysis: Mathematics of Scientific Computing, by David Kincaid & Ward Cheney, using OpenACC to access GPUs

Zolo-SVD: implements QDWH-PD, QDWH-SVD, and Zolo-SVD algorithms. It uses the ELPA package to compute the eigendecompositions when computing SVD. A structured QR factorization algorithm is also included, which are modified from Scalapack routines and are usually faster. Associated paper: A high performance implementation of Zolo-SVD algorithm on distributed memory systems, by Shengguo Li et al., Parallel Computing (2019).

Materials Science

Abaqus-Fortran-Subroutine: documentation and examples of Fortran subroutines calling Abaqus, by Nguyen Xuan Binh

ABAQUS_subroutines: codes covering some aspects of material mechanics, by David Morin. Each example has a Fortran subroutine, an ABAQUS input file for both Standard and Explicit, a Python post-processing script to extract results from ABAQUS/viewer, a Python script to plot the results, and a PDF presentation of the subroutine, the input file structure and the results.

Ab Initio Restructuring Tool Enabling Modelling of Interface Structures (ARTEMIS): generates and predicts interfaces between two crystals, by Ned Thaddeus Taylor and Steven Paul Hepplestone

Atom/Molecule/Material Software Kit (atomsk): command-line program meant to manipulate atomic systems, and convert from and to various file formats, by pierrehirel et al.

Boundary Element Software for 3D Linear Elasticity (BESLE_v1.0): software for carrying out 3D simulations of solids under quasi-static, inertial and high-rate boundary conditions for transient analysis, associated with a paper by Andres F. Galvis et al., Computer Physics Communications (2021)

cdpm2: related paper: Grassl, Peter, Dimitrios Xenos, Ulrika Nyström, Rasmus Rempling, and Kent Gylltoft. "CDPM2: A damage-plasticity approach to modelling the failure of concrete." International Journal of Solids and Structures 50, no. 24 (2013): 3805-3816

DiffuseCode: suite of programs to simulate disordered and nanomaterials, by tproffen et al.

disorder: code corresponding to paper "Algorithm for generating irreducible site-occupancy configurations" (2020), by Ji-Chun Lian et al.

DMFTwDFT: calculates electronic, vibrational and elastic properties in strongly correlated materials (SCM) using beyond-DFT methods such as DFT+U, DFT+Hybrids and DFT+DMFT (Dynamical Mean Field Theory) with a variety of different DFT codes

Düsseldorf Advanced Material Simulation Kit (DAMASK): flexible and hierarchically structured model of material point behavior for the solution of elastoplastic boundary value problems along with damage and thermal physics, from eisenforschung. An associated paper is DAMASK – The Düsseldorf Advanced Material Simulation Kit for modeling multi-physics crystal plasticity, thermal, and damage phenomena from the single crystal up to the component scale, by F. Roters et al., Computational Materials Science (2019).

EXCEED-DM: EXtended Calculation of Electronic Excitations for Direct detection of Dark Matter, by tanner-trickle

Finite Element Polycrystal Plasticity (FEPX): parallel finite element-based elasto-viscoplastic framework for use in modeling large deformations of polycrystalline aggregates, from acmelab-ua

gbXstallography: programs used to compute and plot distributions of grain boundary properties, by Gregory S. Rohrer et al. More information is here.

General Tool for Electron Emission Calculations (GETELEC): computational tool for calculating electron emission current and Nottingham effect heat for metallic emitters, associated with the paper A general computational method for electron emission and thermal effects in field emitting nanotips, by A. Kyritsakis and F. Djurabekova, Computational Materials Science (2017)

GPMaterials: implements a rich set of finite element formulations for finite strain hyperelasticity, damage, multi-scale solid mechanics in both continuum and discrete level (truss-like network of fibres), by Felipe Figueredo Rocha

GraSPH: Smoothed-particle Hydrodynamics (SPH) program originally intended for simulations of bulk granular material as well as fluids, by Edward Yang. Src_CAF contains code intended to run multi-core configuration enabled with the Coarray Fortran 2008 features, and src_GPU contains code intended to run on a CUDA-enabled GPU.

Hard-fit-by-minimization: efficient program to fit a stress-strain curve by the empirical function derived from crystal plasticity, by LaszloSToth

hyplas: finite element program for implicit small and large strain analysis of hyperelastic and elasto-plastic two-dimensional and axisymmetric solids, from the book Computational Methods for Plasticity: Theory and Applications

Inverse Design of Materials by Multi-objective optimization (IM2ODE): target properties of concern include the optical and electronic-structure properties of semiconductors, hardness of crystals, etc, by Yueyu Zhang et al. IM2ODE can easily predict the atomic configurations with desired properties for three dimensional structure, interface and cluster, even complex defect in solid.

LBsoft: software for soft glassy emulsion simulations, by Fabio Bonaccorso et al.

Los Alamos Polycrystal code (LApx): predicts the mechanical response of crystalline materials subjected to arbitrary quasi-static (i.e., low strain rates) scenarios. LApx uses fast Fourier transform based methods to solve for the stress and strain states at each point within a complex microstructure.

mef90: reference implementation of the variational approach to fracture, as described in several papers, by Blaise Bourdin

MulSKIPS: Kinetic Monte Carlo super-Lattice code designed to simulate with atomic resolution the kinetics of processes (e.g., PVD, CVD, laser annealing) involving elements, alloys and compounds characterized by the sp3 bond symmetry. An associated paper is G. Calogero et al., Multiscale modeling of ultrafast melting phenomena, npj Computational Materials 8, 36 (2022)

NH-TOPOPT-FORTRAN: generates mechanical metamaterials based on a process of topological optimisation and numerical homogenisation, by Jeffrey Guevara-Corzo. An associated paper is How to determine composite material properties using numerical homogenization, by Erik Andreassen and Casper Schousboe Andreasen, Computational Materials Science (2014).

Nonlinear MetaMaterial MPI Solver (NM^3): codes and example files used in paper, "High-Performance Large-Scale Simulation of Multi-stable Metastructures", by M. Hwang, C. Scalo, and A. F. Arrieta, to be published.

Polymer Self-Consistent Field Theory (PSCF): numerically solves the polymer self-consistent field theory (SCFT) for spatially periodic structures formed by block copolymer melts and mixtures of block copolymers with linear homopolymers and/or small molecule solvents, by David Morse et al.

RuSseL3D: applies the Finite Element Method to run three-dimensional calculations on heterogeneous polymer systems, based on Self-Consistent Field Theory (SCFT), by Constantinos J. Revelas et al. It can address homopolymer melts in contact with solid surfaces and provide with useful results regarding the thermodynamics and the structural properties of the system.

simulated_tem: compute simulated transmission electron microscope images in dynamical two beam condition. An associated paper is Simulated TEM imaging of a heavily irradiated metal, by Daniel R. Mason et al., Acta Materialia (2024)

SISSO: data-driven method combining symbolic regression and compressed sensing toward accurate & interpretable models, by rouyang2017

sulfur-magma: predicts of sulfur redox state in magmatic liquids, by Roberto Moretti and Charles Le Losq. Associated paper: Moretti, R., & Ottonello, G. (2003). A polymeric approach to the sulfide capacity of silicate slags and melts. Metallurgical and Materials Transactions B, 34(4), 399–410. doi.org/10.1007/s11663-003-0066-1

Thermal-Diffusivity: computes the electronic thermal diffusivity of a highly defected elemental metal. An associated paper is Estimate for thermal diffusivity in highly irradiated tungsten using molecular dynamics simulation, by Daniel R. Mason et al., Physical Review Materials (2021)

thermo_pw: ab-initio computation of material properties, by dalcorso

Truchas: physics-based modeling and simulation of manufacturing processes, from Los Alamos National Laboratory. Its core capabilities are primarily geared toward metal casting, with developing capabilities for metal additive manufacturing.

usrmat_LS-Dyna_Fortran: basics to implement user-defined materials (usrmat, umat, utan) in LS-Dyna with Fortran, by jfriedlein

Mesh Generation

EqualSpherePartition: partitions the surface of a sphere into regions of equal area, by Zheng Gong. Reference: Leopardi P. A partition of the unit sphere into regions of equal area and small diameter[J]. Electronic Transactions on Numerical Analysis Etna, 2006, 25(1):2006.

FEconv: utility to convert between several mesh and FE field formats, like ANSYS mesh files (.msh), MD Nastran input files (.bdf), I-Deas Universal (.unv), VTK files (.vtk), etc.

fishman: generate Spherical Centroidal Voronoi Tessellation (SCVT) mesh for using in geophysical modeling, by dongli

geompack: modernization by Jason Christopherson of the GEOMPACK Fortran 77 library by Barry Joe for computing Delaunay triangulations

gmsh-fpm: provides access to the Fortran F2018 API of Gmsh, examples of how to use the Fortran API, and a Fortran compiled executable for Gmsh itself, by gnikit

High Order Hex-Quad Mesh (HOHQMesh): generates all-quadrilateral meshes with high-order boundary information, by David A. Kopriva et al.

hopr: High Order Preprocessor is an open-source software for the generation of three-dimensional unstructured high-order meshes, from Numerics Research Group. These meshes are needed by high-order numerical methods like Discontinuous Galerkin, Spectral Element Methods or pFEM, in order to retain their accuracy if the computational domain includes curved boundaries.

IDWarp: uses an inverse distance method to modify the location of mesh volume nodes given a perturbation of the surface nodes, from mdolab. Associated with paper N. Secco, G. K. W. Kenway, P. He, C. A. Mader, and J. R. R. A. Martins, “Efficient Mesh Generation and Deformation for Aerodynamic Shape Optimization”, AIAA Journal, 2021. doi:10.2514/1.J059491

LaGriT: Los Alamos Grid Toolbox (LaGriT) is a library of user callable tools that provide mesh generation, mesh optimization and dynamic mesh maintenance in two and three dimensions.

libsupermesh: library for serial and parallel mesh intersection, or supermeshing. An associated paper is Conservative interpolation between volume meshes by local Galerkin projection, by James R. Maddison and Patrick E. Farrell, Computer Methods in Applied Mechanics and Engineering (2011).

local_mesh_refinement: performs local refinement of XFEM-enriched 3D hexahedral elements, from PhiPsi-Software. Given the original mesh (*.elem and .node files) and a file (.ennd) that describes enriched nodes, this program generates the refined mesh (output.elem and output.ndoe).

meshf: 2D Delaunay triangulation, by ofgn. Future plans include implementing Delaunay refinement, constrained Delaunay, 3D Delaunay, and structured mesh capabilities.

MPI-AMRVAC: parallel adaptive mesh refinement framework aimed at solving (primarily hyperbolic) partial differential equations by a number of different numerical schemes. The emphasis is on (near) conservation laws and on shock-dominated problems in particular.

OpenMeshConverter: open source utility to convert various publicly available mesh formats, by Nicholas Herring. It takes a version 4 Gmsh file (tested with version 4.1) and converts it to the THOR mesh format, and there are plans to extend this converter to intake other versions of Gmsh and exodus.

overkit-fortran: overset grid assembly and remapping toolkit, by Matt Smith. Overset meshes are a method for representing complex geometry in computational fluid dynamics and other types of PDE-based simulations. There is a parallel C++ version.

pyhyp: uses hyperbolic volume mesh marching schemes to extrude structured surface meshes into volume meshes, by mdolab. pyHyp is used as a preprocessing step in the geometry and mesh-creation process prior to an optimization.

shabaka: command-line tool that reads segmented images and generates watertight surface meshes (or b-reps) of the objects of interest, by omhafez. Surface meshes can be piped into mesh generation tools for scientific computing, 3D printing programs, or visualization software.

smesh: package for generating and handling unstructured triangular and polygonal meshes, by Simone Chiocchetti and Michael Schlottke-Lakemper

TetMeshF90: mesh Library, based on the Hierarchical Array-based Half-facet Data Structure by X. Zhao et al, for representation and multilevel refinement of 3D tetrahedral meshes, by Nonso Mgbechi

XH5For: library to read and write parallel partitioned FEM meshes taking advantage of the Collective/Independent IO provided by the HDF5 library, by victorsndvg and Stefano Zaghi. XH5For is not a general-purpose XDMF library, it only reads XDMF files written by itself

Molecular Dynamics

ABIN: performs ab initio molecular dynamics, by Daniel Hollas et al. It was designed specifically to deal with quantum nuclear effects.

AUTOSURF-v1.3: suite of codes for the automated construction of potential energy surfaces (PES) for van der Waals systems. The fitting algorithms implemented in the code are based on the L-IMLS methodology, and have many advanced features such as options for data-point placement, flexibility to include gradients in the fit, iterative refinement, and symmetry recognition.

Caracal: enables a wide variety of molecular dynamics applications. Associated paper: Caracal: A Versatile Ring Polymer Molecular Dynamics Simulation Package, by Julien Steffen, J. Chem. Theory Comput. 2023

DeePMD-kit-Fortran-Cpp-interface: Fortran interface by Yongbin Zhuang and Futaki Haduki to DeePMD-kit, a package written in Python and C++, designed to minimize the effort required to build deep learning-based model of interatomic potential energy and force field and to perform molecular dynamics (MD).

dl-poly: general-purpose classical molecular dynamics (MD) simulation software developed at Daresbury Laboratory since 1992. Over the years has been transformed from a replicated memory code to a distributed memory one.

EmDee: platform to test simulation methods that involve the mechanics of many atoms, such as different thermostats and barostats, hybrid Monte Carlo algorithms, etc, from atoms-ufrj

Empirical Valence Bond - Quantum mechanical derived force field (EVB-QMDFF): Ring Polymer Molecular Dynamics (RPMD) and rate constant calculations on black-box potential energy surfaces, by Julien Steffen

examples from "Computer Simulation of Liquids": code by Michael P. Allen and Dominic J. Tildesley to accompany book. The programs contain some explanatory comments, and are written, in the main, in Fortran 2003/2008.

kg4vasp: Kubo-Greenwood for transport properties from First Principle Molecular Dynamics with VASP, by conodipaola

Hefei-NAMD: ab-initio nonadiabatic molecular dynamics program, by QijingZheng and WeibinChu

Packmol: creates an initial point for molecular dynamics simulations by packing molecules in defined regions of space, from Martinez Molecular Modeling Group. The packing guarantees that short range repulsive interactions do not disrupt the simulations.

Playmol: software for building molecular models, by ‪Charlles Abreu‬ et al. Molecules are created with simple scripts consisting of a small set of commands, molecular topology arises naturally when atoms are connected (automatic detection of angles and dihedrals), integration with Packmol provides a way of creating complex molecular systems, and generation of LAMMPS and OpenMM files provides a way of performing efficient MD simulations.

QUIP: collection of software tools to carry out molecular dynamics simulations, from libAtoms. It implements a variety of interatomic potentials and tight binding quantum mechanics, and is also able to call external packages, and serve as plugins to other software such as LAMMPS, CP2K and also the python framework ASE.

QXMD: scalable, parallel program for Quantum Molecular Dynamics simulations with various eXtensions, from USCCACS. Its simulation engine is based on (time-dependent) density functional theory using pseudopotentials and plane-wave basis, while extensions include nonadiabatic electron-nuclei dynamics and multiscale shock technique.

Reactive_PB_NN_MD: reactive molecular dynamics code based on PB-NN potentials, in which neural networks are utilized in the off-diagonal elements of the Hamiltonian to mediate the chemical reactions, by Sam Delmerico et al. This code uses a custom update algorithm to calculate PME forces for the diabatic states in the Hamiltonian matrix.

Relativistic and Electromagnetic Molecular Dynamics Simulation for Nanoscale Phenomena: associated paper: M. Tanaka and M. Murakami, Relativistic and electromagnetic molecular dynamics simulations for a carbon-gold nanotube accelerator, Computer Physics Communications, 241, 56-63 (2019)

RXMD: simulates large-scale Reactive Force Field molecular dynamics (MD) simulations on from commodity laptops to high-end supercomputing platforms, from USCCACS. rxmd has been used in a various class of material studies, such as shock-induced chemical reactions, stress corrosion cracking, underwater bubble collapse, fracture of self-healing ceramics and oxidation of nanoparticles.

SIS: coarse-grained molecular dynamics simulation with the Single-Interaction-Site RNA model, by Naoto Hori et al.

Strain_CGMD: nonlinear bending motion of single walled carbon nanotubes (SWCNT) calculated by molecular dynamics simulation has been depicted using coarse grained molecular dynamics (CGMD), which is modeled as a simple beads system, by Heeyuen Koh et al.

Structure_factor_FFT: computes structure factors using the particle mesh Ewald approach, by Jesse Gatten McDaniel. Either the electron density structure factor can be computed for X-ray scattering (uses form factors), or the total charge density can be computed (uses input force field charges) to evaluate sum rules

Neural Networks and Machine Learning

Adaptive Training for High Efficiency Neural Network Applications (ATHENA): library for developing and handling neural networks (with a focus on convolutional neural networks), by Ned Taylor

ANN-Fortran: Fortran-C interface from Box-Tools for using ANN, a C++ library for both exact and approximate nearest neighbor searching in spaces of various dimensions, by David M. Mount and Sunil Arya

autofit: fit permutationally invariant polynomials (PIPs), by Auto-Mech

fastGPT: fast GPT-2 inference, by Ondřej Čertík, described in a post FastGPT: Faster than PyTorch in 300 Lines of Fortran

ferrite: code for simple, lightweight transformers, such as a Sentence Transformer, by Andrew Marble

FKB: two-way deep learning bridge between Keras and Fortran, from scientific-computing

fnn: implements simple, sequential neural networks, by CEREA DA-ML team. Once a network is constructed, the forward operator is available with apply_forward and can be applied both in training and inference mode.

forncnn: experimental Fortran binding for ncnn c_api, by mizu-bai. Ncnn is a high-performance neural network inference framework optimized for the mobile platform.

FortLearner: linear regression, logistic regression, stochastic gradient descent, decision trees, ensemble trees, boosting trees, and dimension reduction, by NaoMatch

fortnet: using atom-centered symmetry functions to characterize local atomic environments, Fortnet provides easy access to the Behler-Parrinello-Neural-Network architecture to predict atomic or global properties of a physical system, featuring powerful but optional MPI parallelism, by vanderhe

fortran2xgb: interface for calling XGBoost from Fortran, by Christoph Keller. The idea is to train an XGBoost model externally, e.g. in Python, then save that model to disk (in the XGBoost internal binary format, e.g. using Booster.save_model() in Python), and later call the model from Fortran to make a prediction.

fortran_calls_tensorflow: how to calls a TensorFlow from Fortran 2003, by putschblos

fortran_dnn_from_tf: provides a straightforward yet very accurate framework for using deep neural networks (DNNs) previously trained with TensorFlow to make predictions in a Fortran project, by ajfurlong. This approach allows Fortran programs to leverage the predictive power of TensorFlow-trained models without requiring complex integration or dependencies beyond HDF5 for data handling.

Fortran FLANN binding: Fortran bindings to the FLANN library for performing fast approximate nearest neighbor searches in high dimensional spaces, by ivan-pi

fortran-NeuralNetwork: Simple implementation of a neural network, implemented in Fortran, by Jonas-Finkler

FTorch: code and examples on directly calling Pytorch ML models from Fortran, from Cambridge-ICCS

fortran-tf-lib: code and examples on directly calling Tensorflow / Pytorch / Keras ML models from Fortran, from Cambridge-ICCS

Fortran-Torch-Adapter: integrates a deep learning model into a Fortran environment, by luc99hen

gpf: small Fortran library for Gaussian process regression. It currently implements value predictions with dense Gaussian processes, and projected-process approximate Gaussian processes

Inference-Engine: software library by Damian Rouson et al. for researching ways to efficiently propagate inputs through deep, feed-forward neural networks exported from Python by the companion package nexport

KohonenF03: library for Self-Organizing Maps, by Oscar Garcia-Cabrejo. Self-Organizing Maps or Kohonen Maps are powerful computational tools to cluster multivariate data using a topology preservation approach

llama2.f90: Toy LLaMA2 model inference, by rbitr, based on llama2.c by Andrej Karpathy

MlFortran: library designed for the writing and the development of Complex System models, by Etienne Descamps. It is written in a modern object-oriented Fortran 2008 and has a C and C++ interface. Its aim is to ease the development of complex models in lower level language such as C/C++ and Fortran by providing structures and algorithms that can be found in higher level programming language such as Matlab or Python/SciPy.

mlxanes: machine learning x-ray absorption near edge structure: An OpenMP parallelised multivariate linear regression Fortran program for predicting XANES spectra from an xyz file, by tneth

nerofort: implements a convolutional neural network (CNN), by Rares Polenciuc, inspired by the instructions provided in Python and Machine Learning

neural-fortran: parallel neural net microframework, from modern-fortran

Neural Network: simple, fully connected, dense, deep neural network, implemented in modern Fortran and parallelised using coarrays, by anjohan

NN_MOD: Fortran 2008 Module/Class for training neural network regressors, by thchang

ParallelForest: R package implementing random forest classification using parallel computing, built with Fortran and OpenMP in the backend, by bert9bert

pytorch-fortran: provides Fortran HPC codes with a simple way to use Pytorch deep learning framework, so that Fortran developers can take advantage of rich and optimized Torch ecosystem from within their existing codes.

rwkv.f90: port by Matteo Grella and Marco Nicola of RWKV-LM, an open-source large language model initially developed in Python. RWKV is an RNN with Transformer-level LLM performance, which can also be directly trained like a GPT transformer

roseNNa: fast, portable, and minimally-intrusive library for neural network inference, by Ajay Bati and Spencer Bryngelson. The library is optimized Fortran and outperforms PyTorch (by a factor between 2 and 5x) for the relatively small neural networks used in physics applications, like CFD.

Tangent-linear and adjoint test of a neural network (nn_tl_ad): fully-connected neural network implemented in Fortran, along with its "tangent-linear" and "adjoint" versions (i.e. the Jacobian and transpose of the Jacobian), by Sam Hatfield. It also includes standard tests for the consistency of these.

TensorFlow Fortran Binding library (TFFB): loads and evaluates Keras models directly from Fortran in a straightforward manner. Associated preprint: Towards Exascale CFD Simulations Using the Discontinuous Galerkin Solver FLEXI, by Marcel Blind, Min Gao, Daniel Kempf, Patrick Kopper, Marius Kurz, Anna Schwarz, and Andrea Beck, 2023.

TorchFort: deep learning training and inference interface from NVIDIA for HPC programs implemented using LibTorch, the C++ backend used by the PyTorch framework. This library can be invoked directly from Fortran or C/C++ programs.

util: machine learning, optimization, and data science utilities package, by tchlux. tlux has code for nonlinear regression and the ball tree algorithm for nearest neighbors

Numerical

afnl: Fortran 90 numerical library with modules for numerical types, constants, error handling, integration, optimization, linear algebra, sorting and search, special functions, statistics, polynomials, root-finding, Fourier transforms, and dates and times, by Alberto Ramos

amosf90: module for AMOS, a package for Bessel functions of a complex argument and nonnegative order, by Euler-37

antia_numerical_methods: codes from "Numerical methods for scientists and engineers, 3rd ed." (2012), by H. M. Antia

appell: R package with Fortran code to compute Appell's F1 hypergeometric function

BesselEval: rapidly evaluates of Bessel functions J_nu and Y_nu of the first and seconds kinds of nonnegative real orders and positive real arguments, based on precomputed expansions, with the algorithm described in a preprint, An algorithm for the numerical evaluation of Bessel function real orders and arguments, by James Bremer

Bessel-Hankel: examples of the Hankel transformation and calculations of Bessel functions of the 1st kind and 2nd kind, their derivatives of the 1st order and 2nd order, and their zeros, by Tche Liu

chebpak: routines for Chebyshev polynomials, derivatve matrices, and interpolation, by Sarit Dutta

compare: module to aid in comparison of real or complex numbers, by Tom Canich and Magnus Hagdorn. The module specifies a tolerance when making the comparisons to determine equality or inequality.

Computer Methods for Mathematical Computations: code from the book by Forsythe, Malcolm, and Moler, translated to Fortran 90 by Ralph Carmichael

DATAPLOT: powerful and flexible program for performing scientific, engineering, statistical, mathematical, and graphical analysis, from usnistgov

dfsaneacc: R package with underlying Fortran code implementing the algorithm in Secant Acceleration of Sequential Residual Methods for Solving Large-Scale Nonlinear Systems of Equations, by Ernesto G. Birgin and J. M. MartÍnez, SIAM Journal on Numerical Analysis, Vol. 60, Iss. 6 (2022)

ellipFor: evaluates Legendre elliptic integrals and Jacobi elliptic functions for generalized input parameters, by Sean Trim

faiNumber-Fortran: fast, flexible, and secure numerical library for Fortran with fast number parsing as one of its features

Fast Bessel Transform: performing fast Bessel transforms of Transverse Momentum Distributions using Ogata quadrature, by John Terry et al.

fastconv: simple library for 1D and 2D convolutions, by Dominik Gronkiewicz

fastmath: library for fast, approximate math functions: exp, log, 1/sqrt, by Federico Perini. These functions provide fast, approximate evaluations of the exponential, logarithm and normalization functions in 64-bit precision.

fast_math: collection of functions for fast number crunching, including a fast and precise sum and dot_product for 1D arrays, a reciprocal square root, the logarithm, and trigonometric functions, by jalvesz

fctables: computes FC-Gram tables, by Mauro Fontana and sabian2008, using the MPFUN2020 library for arbitrary precision floating point arithmetic. The algorithm is described in the paper Fourier continuation method for incompressible fluids with boundaries

fgsl: Fortran interface to the GNU Scientific Library, by reinh-bader

Field Abstract Calculus Type Usable and Aesthetic Library (FACTUAL): provides abstract types to represent mathematical fields in Fortran, by Chris MacMackin. These are both scalar and vector fields. It also contains (at present) one concrete implementation of these types, using a pseudo-spectral approach and tracking field values at Chebyshev collocation points.

findiff: finite differencing code for derivative approximation, by PunchesMalone

finite_difference: package to calculate the finite difference weighting coefficients for arbitrary sets of points, by Jason Roberts. The method uses a self-contained arbitrary precision library and Taylor series acceleration via hyper-dual numbers.

FMPFR: Fortran binding to the GNU MPFR Library multi-precision library, by Thomas Koenig

ForDiff: numerical differentiation using the complex step method or finite differences, by Seyed Ali Ghasemi

forlab: module that provides a lot of functions for scientific computing mostly inspired by Matlab and Python's module NumPy, by zoziha

forSISL: Modern Fortran interfaces to the SINTEF Spline Library (SISL), by Richard Weed

ForSolver: solves linear and nonlinear equations, by Seyed Ali Ghasemi. For nonlinear equations the available methods are newton, newton-modified, newton-quasi-fd, newton-quasi-fd-modified, newton-quasi-cs, and newton-quasi-cs-modified, where "fd" and "cs" stand for the finite difference and complex step methods.

fortran-bessels: Fortran port (stub) of the Bessels.jl repository, by Federico Perini et al.

Fortran Multiple Precision Library (FMPL): by Zander Lewis

fortran-numerical-methods: implements methods for solving ordinary differential equations, numerical interpolation, finding roots of equations, and other topics, by Carlos Raúl

fortran-primes: library to return the nth prime number, the prime numbers in a range, test if a number is prime, return the nth prime number greater than a specified number, and factor a number into primes, by Federico Perini, based in part on codes by Michal Forisek, David Deley and Primes.jl

fortran_toolkit: modules for statistics, linear algebra, optimization and other topics, by Borja Petit

ForTrilinos: provides Fortran interfaces for the following capabilities of the C++ Trilinos library: Parameter lists and XML parsers (through Teuchos); Distributed linear algebra object including sparse graphs, sparse matrices, and dense vectors (through Tpetra); Linear solvers and preconditioners (through Stratimikos, Ifpack2, Belos, MueLu); and Eigen solvers (through Anasazi).

FURY: Fortran Units (environment) for Reliable phYsical math, by Stefano Zaghi

gamma_f77: implements the real-valued Gamma function in quadruple-precision, by Christopher Kormanyos

GaussJacobiQuad: routines for the Gauss-Jacobi Quadrature, by Rohit Goswami and Ondřej Čertík

GetRootsF: routines for finding the roots of linear/non-linear equations, with or without derivative information, by Andrew Senchuk

gf_solver: finds the zeros of a function using the basic Newton method and switches to hybrid Newton-bisection if the max number of iterations is exceeded, by gfell

HDMod: hyperdual number based calculations, from atmmod

HOMPACK90: solves nonlinear systems of equations by homotopy methods. There are subroutines for fixed point, zero finding, and general homotopy curve tracking problems, utilizing both dense and sparse Jacobian matrices, and implementing three different algorithms: ODE-based, normal flow, and augmented Jacobian. Associated paper: Algorithm 777: HOMPACK90: a suite of Fortran 90 codes for globally convergent homotopy algorithms, by Layne T. Watson et al.

Jacobi Theta functions for Fortran: by Mikael Fremling

JFNK-Hookstep: Jacobian-Free Newton-Krylov solver with Hookstep-trust-region approach, by Ashley P. Willis. It solves F(x) = 0, where F and x are n-vectors.

library: code for array operations, numerical differentiation and integration, mathematical and physical constants, FFTs, interpolation, optimization, ODEs, finding roots, random number generation, sorting, statistics, strings, and other topics, by Alexander Mead

Library of Numerical Analysis - Moscow State University: Translation of subroutines into modern Fortran (Fortran90 or higher) from Fortran 66. Original website: http://num-anal.srcc.msu.ru/lib_na/cat/cat0.htm

lookup_table_fortran: module for linear lookup tables, by jannisteunissen. Supports multiple columns and various ways to read values from the table

Mittag Leffler function and its derivative: translated from the Matlab code of Robert Garrappa

monolis_utils: utilities for monolithic library of numerical simulation, by Naoki Morita. There are modules for I/O, data processing, algebraic computations, memory allocation and release, MPI, tabular data, bounding boxes, Kd-trees, and hashing.

mpfun90: software by David H. Bailey that permits a new or existing Fortran 90 program to utilize multiple-precision arithmetic, or in other words a level of numeric precision that ranges from 50 digits to hundreds or thousands of digits if required. A more recent version is MPFUN2020.

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

Modern Fortran Utilities (ModForUtils): variety of tasks including computing binomial coefficients, factorials, routines for checking for NaN and Infinity floating point exceptions, root finders, random number utils and array sorters, and findloc, by Richard Weed. Future releases will expand on these utilities and add interpolation routines and other utilities.

NAFPack: numerical analysis package, offering a comprehensive set of algorithms for diverse numerical computations, by Jules Minard. These computations include Fast Fourier Transform, linear system solving, and eigenvalue/eigenvector calculations.

Naval Surface Warfare Center (NSWC) Mathematical Library: collection of Fortran 77 routines specializing in numerical mathematics. Subroutines are available in the following areas: elementary operations, geometry, special functions, polynomials, vectors, matrices, large dense systems of linear equations, banded matrices, sparse matrices, eigenvalues and eigenvectors, L1 solution of linear equations, least-squares solution of linear equations, optimization, transforms, approximation of functions, curve fitting, surface fitting, manifold fitting, numerical integration, integral equations, ordinary differential equations, partial differential equations, and random number generation.

NCAR-Classic-Libraries-for-Geophysics: FFTPACK: A library of fast Fourier transforms; FISHPACK: subprograms for solving separable elliptic partial differential equations (PDEs); FISHPACK 90: FISHPACK subprograms with a Fortran 90 interface; MUDPACK: Multigrid subprograms for solving separable and non-separable elliptic PDEs; and SPHEREPACK: A library for modeling geophysical processes

Numerical_differentiation: numerical differentiation performed using the finite difference method, complex step method, or hyper-Dual numbers, by Seongyong Yoon

NITSOL: Newton-iterative solution of large-scale nonlinear systems, by Homer F. Walker

Nonlinear Equation Solver with Modern Fortran (nlesolver-fortran): basic Newton-Raphson type nonlinear equation solver for dense systems with m functions of n input variables, by Jacob Williams. Uses LAPACK routines (dgesv or dgels) to solve the linear system.

NumDiff: modern Fortran numerical differentiation library, by Jacob Williams

Numerical-Methods: codes for course in numerical methods, including linear equations, finding roots, eigenvalue problems, interpolation and approximation, numerical integration and differentiation, random numbers, and Monte Carlo, by Manan Rawat and H. M. Antia. Codes from Antia's book are here and archived here.

Numerical_utilities: Kahan algorithms for the sum, variance, and covariance, using MPI, by osada-yum

Numeric Library for Modern Fortran: scope: Integer (handling integer constants, digits, convert to string with format); Real (handling real constants, convert to string with format); Non-number (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

Numeric Modern Fortran (numfor): has submodules Utils with basic, non-specific, functionality used in many scientific programs, Array_utils with basic functionality to work with arrays, including generation of grids, search of elements and sorting, Interpolate with routines to perform interpolation, fitting of data, and some work on polynomials, and Integrate with routines to perform integration of real and complex functions, and of sampled data.

NumFort: numerical library for FORTRAN that includes quadpack, lapack, PLplot and Matplotlib source code, by Anthony Kalaitzis and Curtis Abell. It enables the use of handy mathematical macros such as linspace.

numfort: library implementing a subset of NumPy and SciPy, by Richard Foltyn. Has modules for creating grids, numerical integration, interpolation, optimization, finding roots, and regression.

NumLib: Numerical Library: Demonstration of various numerical methods/recipes, by ebrooker

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

Numerical_Methods: numerical methods with specific applications to classical, statistical and quantum physics, including root-finding, minimization and integration, diagonalizing NxN matrices, methods for ordinary, stochastic and partial differential equations, Monte Carlo simulations and pseudo-random number generators, and path integral and quantum systems simulations, by Dario Maglio

Numerical_Methods: useful numerical methods applied to simple problems, which are a starting point to solving physical problems, implemented in Fortran 90 and Python 3, by brito-leonardo

Numerical methods in Fortran: solving linear, nonlinear equations, integral, ordinary differential equations, ... using numerical methods in Fortran, by Carlos Planelles Alemany

Numerical methods in Fortran: numerical analysis and statistics algorithms, by Murat Koptur

OEIS-Search-GCD-reduced: extended search in the On-Line Encyclopedia of Integer Sequences (OEIS) with GCD reduction and data variants, by Hugo Pfoertner

Pade_approximants: perform analytical continuation using Pade approximants, in Python and Fortran, by Johan Schott. Also NNLS_NNT_MEM, which does analytical continuations using non-negative least squares, non-negative Tikhonov, or the maximum entropy method

polylogarithm: C, C++ and Fortran implementations of various polylogarithms, including the real and complex dilogarithm, trilogarithm, and standard Clausen functions, by Alexander Voigt. The implementations have been fully tested against the literature and many other implementations and are highly optimized for fast numerical evaluation.

polyroots-fortran: modern Fortran library for finding the roots of polynomials, by Jacob Williams

Precision, Compression, and Stochasticity (PCS): library to enable experimentation with different floating point formats, compression, and introducing randomness/stochasticity in codes based on C++ and Fortran, by Martin Karp and Timofey Mukha. An associated paper is CPFloat: A C Library for Simulating Low-precision Arithmetic, by Massimiliano Fasi and Mantas Mikaitis,
ACM Trans. Math. Softw. (2023).

pypolsys: Python wrapper to POLSYS_PLP Fortran 90 package from Layne T. Watson, Steven M. Wise, Andrew J. Sommese, August, 1998. POLSYS_PLP is a solver for N complex coefficients polynomial systems of equations in N unknowns by a probability-one, globally convergent homotopy method.

QD: double-double and quad-double package for Fortran and C++, by Michael Orlitzky and X. Sherry Li

rational_number: procedures for rational numbers, such as arithmetic operations, conversion to and from real variables, and conversion to a string, by art-rasa

roots-fortran: library for finding the roots of continuous scalar functions of a single real variable, by Jacob Wiliams

rpn-calc-fortran: Fortran 2018 Reverse Polish Notation (RPN) calculator from scivision. Over 100 functions not in standard Fortran

s2hat: C and Fortran for spherical harmonics operations, by B3Dcmb

SciFortran: A library of fortran modules and routines for scientific calculations (in a way just like scipy for python), from QcmPlab

SLATEC: comprehensive software library containing over 1400 general purpose mathematical and statistical routines, translated to modern Fortran by Mehdi Chinoune

specfun: modernization by Jacob Williams of specfun.f from SciPy from the book Computation of Special Functions, by Shanjie Zhang and Jianming Jin, Wiley (1996).

specfunc-fullerton: library for evaluating special mathematical function, based on the fn library of Wayne Fullerton, modernised by Arjen Markus. It has Airy functions, modified Bessel functions, beta functions, exponential and logarithmic integrals, gamma functions, inverse cosine and cosine hyperbolic integrals, miscellaneous functions, and Pochhammer symbols

special_functions: Cython and Python API for some Fortran and C libraries of special functions, by Siavash Ameli

STEM-Fortran: modules and routines for math, science and engineering calculations, by roh6608

Tensor Toolbox for Modern Fortran (ttb)

ToolboxFortran: code to replicate basic Matlab functions, sort, interpolate, optimize, find roots, and perform other numerical tasks, by Alessandro Di Nola. Also code to read and write multidimensional arrays.

VecFor: Object-Oriented designed API for handling vectors in a (3D) three dimensional frame of reference, by szaghi and pdebuyl. It exposes (among others) the object Vector that posses a far complete set of overloaded operators for performing vectorial calculus algebra.

Warton Legacy: RSA code scrambling and unscrambling, code generating via robust prime construction, code breaking and secret sharing, by Robert Warton. Routines in number theory and algebraic numbers exist both within programs and separately.

Numerical Integration (Quadrature)

F90-Extrapolation-Integration: implements the Richardson extrapolation method on 1-, 2- and 3-dimensional scalar or vector integrals, by Álvaro R. Puente-Uriona. It specializes in providing an adaptive method, based on extrapolation over the trapezium method, to obtain increasingly accurate values for, depending only on the number of sample points in which the integrand is evaluated. A related project is Extrapolation_Integration.

FORbID: object-oriented Fortran 2008 library for numerical integration of definite integrals, by Giacomo Rossi and Stefano Zaghi

GGQ: package for constructing generalized Chebyshev and generalized Gaussian quadrature rules for collections of univariate and bivariate functions, by James Bremer

INTEGRAL: routines for the integration of functions of various types, by jchristopherson. Additionally, the INTEGRAL library provides routines for the integration of systems of ordinary differential equations (ODEs).

IntegralALL: integrate arrays and functions numerically using Gauss-Legendre Quadrature, Simpson's rule, the trapezoidal rule, and other methods, by Jean Gomes. The Python package pyintegralall calls the Fortran code.

integrate_fortran: Gauss-Legendre quadrature for 1D and multidimensional integrals, by Euler-37

Legendre-Gauss-Lobatto-Quadrature: module that calculates the Legendre-Gauss-Lobatto Quadrature as well as a useful set of functions for the Jacobi polynomials, by SpirosZafeiris

kronrod: generates Gauss-Kronrod coefficients, by Jacob Williams

modern quadpack: provides QUADPACK as a module with explicit interfaces to the user-level routines and names for magic constants, by nshaffer

orthpol: generate orthogonal polynomials and Gauss-type quadrature rules, by ivan-pi

Quadpack2: update by Jacob Williams and Sebastian Ehlert of QUADPACK, a FORTRAN subroutine package for the numerical computation of definite one-dimensional integrals

quadrature-fortran: adaptive Gaussian quadrature with modern Fortran, by jacobwilliams

stroud_quad: routines from the book "Gaussian Quadrature Formulas" by Stroud & Secrest (1966), updated by ivan-pi

triasymq: high-order quadratures for triangles, squares, cubes, and tetrahedra, by zgimbutas

Ordinary Differential Equations

AUTO: software for continuation and bifurcation problems in ordinary differential equations originally written in 1980 and widely used in the dynamical systems community

daskr: differential-algebraic system solver with rootfinding, by P. N. Brown et al. It includes options for both direct and iterative (Krylov) methods for the solution of the linear systems arising at each (implicit) time step.

ddeabm: modern object-oriented Fortran implementation of the DDEABM Adams-Bashforth-Moulton ODE solver, by Jacob Williams and web-flow

dde_solver: update by Warren Weckesser of Shampine and Thompson's DDE_SOLVER, a Fortran library for delay differential equations

diffeq: library providing an object-oriented approach to solving ordinary differential equations, by Jason Christopherson. Available ODE solvers are 4th Order Runge-Kutta and Adams-Bashforth-Moulton (fixed step) and Dormand-Prince Runge-Kutta 5th/4th Order and Bogacki-Shampine Runge-Kutta 3rd/2nd Order (variable step).

dop853: modern Fortran (2003/2008) implementation of Hairer's DOP853 ODE solver, by Jacob Williams. The original FORTRAN 77 code has been extensively refactored, and is now object-oriented and thread-safe, with an easy-to-use class interface. DOP853 is an explicit Runge-Kutta method of order 8(5,3) due to Dormand & Prince (with stepsize control and dense output).

dvode: Modern Fortran Edition of the DVODE ODE Solver, by Jacob Williams

easydop853: modern implementation of Hairer's DOP853 ODE solver by Jiachen An, simplifying that of Jacob Williams. A much-easier-to-use subroutine interface has been created by using the original easy-to-use class interface, however, for simplicity, users can only set the ODE and the initial condition, and cannot set other parameters, such as error tolerance parameters, which can be set by using the original implementation.

FATODE: set of integrators to solve ordinary differential system y'=f(t,y) with capabilities of direct and adjoint sensitivity analysis, from ComputationalScienceLaboratory

Fortran Library for numerical INTegration of differential equations (FLINT): modern object-oriented fortran library that provides four adaptive step-size explicit Runge-Kutta (ERK) methods of order 5, 6, 8, and 9 along with dense-output and multiple event-detection support for each of the methods, by Bharat Mahajan. The code is written such that any other ERK method can be implemented by including its coefficients with minimum changes required in the code.

fortran-xtfc: Extreme Theory of Functional Connections (X-TFC) algorithm to solve ordinary differential equations (ODEs) as initial value problems, applied to Robertson's problem in chemical kinetics, by neuralXray

generic_rk: modularize solvers for ordinary differential equations (ODEs) in Fortran, by cbcoutinho

Hairer-Wanner solvers for stiff ODE problems (hwode): code from the books Hairer, Norsett and Wanner (1993): Solving Ordinary Differential Equations. Nonstiff Problems. 2nd edition. Springer Series in Comput. Math. and Hairer and Wanner (1996): Solving Ordinary Differential Equations. Stiff and Differential-Algebraic Problems. 2nd edition. Springer Series in Comput. Math.

n-dimensional-scalar: computes a basis of the solution space of n^th order scalar equations, time-independent of the magnitude and complexity of the coefficient functions, associated with preprint The Levin approach to the numerical calculation of phase functions (2023), by Murdock Aubry and James Bremer

ODEPACK: collection of solvers for the initial value problem for ordinary differential equation systems

ODEPACK: re-packaging of the ODEPACK differential equation library, with improved HTML documentation, by cfinch

odepack: Modern Fortran interface by Nick Wogan for the LSODA and LSODAR routines in ODEPACK, which is for solving ordinary differential equation initial value problems. This repository contains a modified version of ODEPACK which is threadsafe.

RKAdaptiveMethods: implements adaptive Runge-Kutta methods rk54Sharp, rk54Dormand, rk65Dormand, rk87Dormand, rk87EnrightVerner, rk108Feagin, rk109Legendre, rk1210Feagin, rk1211Peter, rk1412Long, and rk1412Feagin and tests them on the Pleiades problem, a 7 body 2-dimensional gravitational system, by kayejlli. Can be called by Python via f2py or by a Fortran main program.

rksuite: Runge-Kutta methods for the numerical solution of the initial value problem for a first order system of ordinary differential equations

rkf45: Fehlberg fourth-fifth order Runge-Kutta method, adapted by zoziha from the code at Netlib

rklib: Fixed and variable-step Runge-Kutta solvers in Modern Fortran, by Jacob Williams

stiff3: subprogram for solving stiff autonomous systems of ordinary differential equations (ODE's) using a semi-implicit Runge-Kutta method with three steps (SIRK3), by Ivan Pribec and Sebastian Ehlert. The stiff3 source code was originally published in the following book: Villadsen, J., & Michelsen, M. L. (1978). Solution of differential equation models by polynomial approximation. Prentice-Hall, Inc.

twopnt: modern Fortran translation by Federico Perini of the TWOPNT program for boundary value problems

Optimization

Clustering via Nonsmooth Optimization: codes of optimization based clustering algorithms described in the book Partitional Clustering via Nonsmooth Optimization by Adil M. Bagirov, Napsu Karmitsa and Sona Taheri, Springer, 2020.

conmax: general nonlinearly constrained function minimization

CUTEst: Constrained and Unconstrained Testing Environment with safe threads for optimization software

DFL: Derivative-Free Linesearch algorithm for mixed-integer black-box problems by Giampaolo Liuzzi et al. Also DDFSA, a derivative-free simulated annealing global optimizer for bound constrained global optimization problems, ACRS, A Controlled Random Search algorithm for bound constrained global optimization, DIRDFN, derivative-free optimizer for constrained global nonlinear programming, DIRMIN, A DIRECT-based approach exploiting local minimizations for the solution of large-scale global optimization problems, MODIR, derivative-free optimizer for inequality constrained multiobjective global optimization problems, SDMINMAX, Derivative-Free Algorithm for Linearly Constrained Finite Minimax Problems, TESTGO which has bound constrained problems for global optimization, and TESTMO which has multi-objective test problems

differential-evolution_f95: basic differential evolution optimization algorithm, by Ian Morrall

Differential Evolution Parallel Program (DEPP): designed to solve non-linear optimization problems of real-valued functions (objective functions) constrained to boxed domains, by gbertoldo. Additionally, this software is gradient-free, it is not code-invasive, i.e., objective function is treated as a "black-box", it is tolerant to failures, to poor precision calculated or noisy objective functions, it uses parallelization, that is particularly useful for handling computationally expensive objective functions, and it allows a Response Surface Methodology-Differential Evolution hybridization for convergence acceleration.

Diver: fast parameter sampler and optimiser based on differential evolution, by Pat Scott et al.

DualSimplex Fortran 90 module for solving linear programs of the form max c^T x s.t. A x <= b where, c is a cost vector and A x <= b is a system of linear inequality constraints, by Tyler Chang

EMSOL: primal simplex linear programming solver

ForTimize: aims to standarize the way to call optimization functions to ease the process of selecting algorithms to optimize problems, by Federico E. Benelli. The gradient descent and Nelder-Mead algorithms are implemented.

Fortran-Grid-Search: simple serial grid search algorithm, by simple serial grid search algorithm

Fortran spARse Simulated annEALing library (Farseal): library allowing for simulated annealing computation on enormous datasets by utilizing sparse matrix storage and computation, by RainBarrel, based heavily on the work of Nicholas Herring with OpenFSAM

FilterSD: Fortran 77 subroutines for solving nonlinear programming problems and linearly constrained problems in continuous optimization

fmin: derivative-free 1D function minimizer in modern Fortran, by Jacob Williams

fOptimize: 1-D optimization methods of Bisection, Golden Ratio, Newton, and Secant, and N-D methods of Gradient (Cauchy), Newton, Self-scaling Davidon--Fletcher--Powell (DFP), Self-scaling Broyden--Fletcher--Goldfarb--Shanno (BFGS), Self-scaling Broyden family (DFP+BFGS), Box Method (Direct coordinate search), and Hooke & Jeeves, by Diego Volpatto

FortranFilterSLP: for a particular class of non-convex nonlinear programming problems, this implementation of FilterSLP by jajhall uses sequential linear programming to find a (local) optimal solution.

gadfit: global nonlinear curve fitting, based on a modified Levenberg-Marquardt algorithm, by Raul Laasner. Global fitting refers to fitting many datasets simultaneously with some parameters shared among the datasets. The fitting procedure is very fast and accurate thanks to the use of automatic differentiation.

GALAHAD: library of modern Fortran modules for nonlinear optimization

Generalized PROgram for OPTimization (GPROPT): generic tool to minimize a user-defined objective function, by Igor A. R. Lopes. Several classical methods are implemented along with a genetic algorithm.

hyperBOB: Optimization using MPI parallel Latin hypercube sampling and BOBYQA, by maxEntropyProd

Jlp22: software for mathematical and statistical computations, with special reference to linear programming in forestry, by Juha Lappi

lbfgs: L-BFGS Software for Large-scale Unconstrained Optimization by Jorge Nocedal

lbfgsb: limited memory code for solving bound constrained optimization problems, by Jorge Nocedal and Jose Luis Morales

L-BFGS-B: limited-memory quasi-Newton code for bound-constrained optimization, i.e., for problems where the only constraints are of the form l <= x <= u. It is intended for problems in which information on the Hessian matrix is difficult to obtain, or for large dense problems.

L-BFGS-B: code for L-BFGS-B, modernized by scivision

L-BFGS-B-NS: code for thesis by Wilmer Henao, An L-BFGS-B-NS optimizer for non-smooth functions

L-BFGS-B_wrapper_f90: Fortran 90 wrapper of L-BFGS-B local minimization routine, by Mingda Zhang

libdlfind: C-API and Python interface to the DL-FIND geometry optimization library. It is mainly intended for use in high-level libraries as an optimization backend.

libdogleg-f: Fortran bindings to libdogleg - a large-scale nonlinear least-squares optimization library, by Ivan Pribec. Currently only the dense optimizer calls are supported.

libga: genetic algorithm optimisation library by Alberto Ramos

LMBM: Limited Memory Bundle Method for general, possible nonconvex, nonsmooth (nondifferentiable) large-scale minimization, by Napsu Karmitsa. Her site has other codes for nonsmooth optimization, clustering, regression, and imputation

Method of Moving Asymptotes (MMA-in-Fortran): subroutines by Jeffrey Guevara-Corzo that are adaptations/translations of Matlab code associated with the paper A class of globally convergent optimization methods based on conservative convex separable approximations, by Krister Svanberg, SIAM Journal of Optimization (2002)

MJDP_software: Fortran 77 optimization codes by M. J. D. Powell -- bobyqa, cobyla, lincoa, newuoa, tolmin, and uobyqa. The modernized reference implementation is PRIMA.

Minimization: numerical minimization of n-dimensional mathematical functions, by BramvandePut

minimize: minimization routines such as steepest descent, conjugate gradient, and quasi-Newton methods with line search method such as quadratic interpolation and golden section, by ryokbys

Minpack: library for solving nonlinear equations and nonlinear least squares problems, with with CMake makefiles and examples by certik et al.

Minpack: modernization of the original Fortran 77 code, by Jacob Williams

minuit: Fortran 77 library for function minimization and error Analysis by F. James

mknapsack: algorithms for solving knapsack problems with Python, calling Fortran code from the book Knapsack problems: algorithms and computer implementations (1990), by Silvano Martello and Paolo Toth

nlopt-f: Fortran bindings for the NLopt library, by awvwgk. While the NLopt library supports Fortran by using implicit interface calling conventions, those are not type-safe.

nonlin: solves systems of nonlinear equations, by jchristopherson

Open source Fortran Simulated Annealing Module (OpenFSAM): module that can be generally assigned to solve a simulated annealing optimization problem, by Nicholas Herring. A user can easily add this module to any existing modern Fortran program since the module is self contained and sufficiently abstracted.

OptimusPrime: population-based optimisation schema, with modules for Evolutionary Strategy optimisation, genetic algorithm optimisation, and simulated annealing, by Rob Watson

osqp-fortran: Fortran wrapper for OSQP: the Operator Splitting QP Solver

Particle Swarm Optimization (PSO) code in Fortran 95: general code that can be used with any fitness function, by Mohammad Asif Zaman

pikaia: Modern Fortran Edition of the Pikaia Genetic Algorithm by Jacob Williams

pdfo: Powell's Derivative-Free Optimization solvers is a cross-platform package providing interfaces for using the late M. J. D. Powell's derivative-free optimization solvers, including UOBYQA, NEWUOA, BOBYQA, LINCOA, and COBYLA.

prima: Reference Implementation for Powell's methods with Modernization and Amelioration, by Zhang Zaikun and Tom M. Ragonneau. PRIMA implements of Powell's derivative-free optimization methods, namely COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA.

PowellOpt: collection of derivative-free optimization algorithms by M.J.D. Powell.

pso: particle swarm optimization in Fortran, by Konrad1991

PyDQED: Python wrapper for the DQED Fortran code that solves bounded and constrained least squares and nonlinear equations, by Richard Hanson and Fred Krogh, updated to Fortran 90 by John Burkardt

PYthon OPTimization Framework (pyOpt): object-oriented framework for formulating and solving nonlinear constrained optimization problems, calling Fortran codes

QAP: R package with Fortran code implementing heuristics for the Quadratic Assignment Problem, by Michael Hahsler

qnstop: suite of serial and parallel Fortran 95/2003 codes for deterministic global optimization and stochastic optimization by Layne Watson.

quadprog: quadratic programming routine based on R Package sources, by Pedro Ricardo C. Souza. Changed to have a Matlab like interface and usage examples in C and Fortran.

RALFit: non-linear least squares solver that is primarily developed by the Numerical Analysis group at STFC Rutherford Appleton Laboratory.

rrelaxiv: R interface for RELAX-IV minimum cost flow solver in FORTRAN by Dimitri P. Bertsekas and Paul Tseng

scipydirect: Python wrapper to the DIRECT global optimization algorithm with scipy.optimize compatible call syntax, by andim et al.

SEISCOPE optimization toolbox wrapper: demonstrates how to use the SEISCOPE optimization toolbox from Python. The original code is public domain and was written by Ludovic Métivier and Romain Brossier.

slsqp: Modern Fortran edition of the SLSQP optimizer, by Jacob Williams

simulated-annealing: Simulated Annealing with Modern Fortran by Jacob Williams

subplex: solves unconstrained optimization problems using a simplex method on subspaces. The method is well suited for optimizing objective functions that are noisy or are discontinuous at the solution.

TikTak: multistart global optimization algorithm, described in the paper "Benchmarking Global Optimizers", by Antoine Arnoud, Fatih Guvenen, and Tatjana Kleineberg (2019)

Trust Region Derivative-Free algorithm (TRDF): by F. N. C. Sobral. Reference: P. D. Conejo, E. Karas, and L. G. Pedroso, A trust-region derivative-free algorithm for constrained optimization, Optim. Methods Softw., vol. 30, no. 6, pp. 1126–1145, Nov. 2015. Also vkpss: algorithm based on sampling approaches for building models in derivative-free trust-region optimization problems, skinny: derivative-free direct search algorithm for constrained problems, fird: solves general derivative-free constrained optimization problems in which the derivatives of the objective function are not available

ucminf: R package by Hervé Dakpo with Fortran code originally by Robert Schnabel et al. for general-purpose unconstrained non-linear optimization. The algorithm is of quasi-Newton type with BFGS updating of the inverse Hessian and soft line search with a trust region type monitoring of the input to the line search algorithm. A Fortran 90 version of uncmin by John Burkardt is here.

vc-sqnm: implements the vc-sqnm and stabilized quasi Newton method (SQNM) optimization algorithms in C++, Fortran and Python. The SQNM is a fast and reliable optimization method that is well adapted to find local minima on the potential energy surface. Associated preprint: Efficient variable cell shape geometry optimization, by Moritz Gubler, Marco Krummenacher, Hannes Huber, and Stefan Goedecker.

VTDIRECT95: implementation of D. R. Jones' deterministic global optimization algorithm called DIRECT, which is widely used in multidisciplinary engineering design, biological science, and physical science applications, by Layne T. Watson and Masha Sosonkina. The package includes both a serial code and a data-distributed massively parallel code for different problem scales and optimization (exploration vs. exploitation) goals.

VTMOP: Solver for Blackbox Multiobjective Optimization Problems: package containing a robust, portable solver and a flexible framework for solving MOPs, by Tyler Chang and Layne Watson. Designed for for efficiency and scalability to an arbitrary number of objectives, VTMOP attempts to generate uniformly spaced points on a (possibly nonconvex) Pareto front with minimal cost function evaluations.

Parallel Programming

ACM40640-PH504: Introduction to HPC and Parallel Programming Module, by Buket Benek Gursoy et al.

Advanced MPI and parallel I/O: Exercise material and model answers for the CSC course Advanced MPI and parallel I/O, by Jussi Enkovaara and Cristian-Vasile Achim

Advanced Parallel Programming: exercise material and model answers for a CSC course. Other CSC courses are Elements of high-performance computing and Parallel Programming with MPI and CSC Summer School in High-Performance Computing 2022.

Atomic_Subroutines--How_the_Parallel_Codes_may_look_like--Part_1: Fortran 2008 coarray programming with unordered execution segments (user-defined ordering). First in a series of articles by MichaelSiehl

cafut: provides a simple, object-oriented unit testing framework meant for applications using Coarray Fortran, by Renato Zimmermann

clfortran: Fortran interface to Khronos OpenCL API, from cass-support

Coarray Collectives: module aims to provide various collective parallel procedures for Fortran coarray programs, by Neil Carlson. These are in addition to the several intrinsic collectives introduced in Fortran 2018. Currently the module provides a single procedure, co_sum_scan which computes a prefix sum across all images, similar to MPI_Scan.

coarray-examples: simple coarray examples for teaching, by ljdursi

Coarray Fortran Intel Tutorial: examples from Intel Fortran coarray tutorial

CoArray Fortran Framework of Efficient Interfaces to Network Environments (Caffeine): parallel runtime library that aims to support Fortran compilers with a programming-model-agnostic application binary interface (ABI) to various communication libraries, by Damian Rouson et al. Current work is on supporting the ABI with the GASNet-EX or with POSIX processes.

code_examples: collection of examples showing peculiarities when working with Fortran, OpenACC, PGI, or any other software extensively used at MeteoSwiss

concatenate_netcdf: concatenate netcdf files from multiple processors into one file with MPI Fortran, by Craig Schwartz

CUDA-Fortran-Book: example codes included in this directory are a portion of the code samples from the companion website to the book CUDA Fortran for Scientists and Engineers

CUDA Fortran: Fortran programming on GPU: a complete introduction for beginners by Koushik Naskar

cuf23-tutorial: coarray Fortran tutorial with three standalone parallel programs: an unsteady 2D heat equation solver, a simple "Hello, world!" program, and an asynchronous "Hello, world!" program, by Damian Rouson

dmr: Fortran 2008 library for mimicking OpenMP device memory routines in Fortran, by Giacomo Rossi

Elements of high-performance computing: general level introduction to high-performance computing, from csc-training

Emulators: emulated collectives collection: collective subroutines and other procedures designed to emulate or extend standard language features, by Damian Rouson. Emulated features include the Fortran 2008 intrinsic function findloc and the Fortran 2018 collective subroutines co_sum and co_broadcast.

examples: High Performance Computing examples in Fortran, C, Python, and R, by timkphd

Examples from OpenMP Application Programming Interface: examples from OpenMP Application Programming Interface in Fortran, C, and C++

ExaTENSOR: basic numerical tensor algebra library for distributed HPC systems equipped with multicore CPU and NVIDIA (or AMD) GPU, by Dmitry I. Lyakh. The hierarchical task-based parallel runtime of ExaTENSOR is based on the virtual tensor algebra processor architecture, i.e. a software processor specialized to numerical tensor algebra workloads on heterogeneous HPC systems (multicore/KNL, NVIDIA or AMD GPU).

EZMPI: interface to the MPI library, at a higher level than the official interface, by Lionel Guez

f2dace-artifact: data, visualization plots, and reproduction scripts for the paper "DaFy: Data-Centric Fortran Portability", which presents a workflow that translates Fortran applications into a data-centric representation called SDFG, applies data-flow optimizations in DaCe, and compiles the applications to CPU and GPU, by Marcin Copik and alexnick83

f77_zmq: Fortran 77 binding library for ZeroMQ, an open-source universal messaging library, by Anthony Scemama et al.

first-timer: simple timing routines to be used in codes which use MPI and possibly CUDA/OpenACC using NVTX markers, by Pedro Costa

FGPU: code examples focusing on porting FORTRAN codes to run DOE heterogenous architecture CPU+GPU machines, from LLNL. The purpose of these is to provide both learning aids for developers and OpenMP and CUDA code examples for testing vendor compilers capabilities.

focal: modern Fortran abstraction layer for OpenCL, by Laurence Kedward

forthread: threading library with a simple binding to POSIX pthread, by jordan4ibanez. It comes with a thread pool/dispatcher, a concurrent FILO linked queue, and a concurrent FILO array queue.

FortranHPC: code examples and how-to's on how to write code on HPCs using MPI, Cuda and OpenAcc, by MomoInSpace

FortranOpenACC: combine Fortran with OpenACC, by Bojan Niceno, implementing a sparse-matrix vector product, vector-vector dot product, and diagonally preconditioned conjugate gradient

Fortran Coarray and MPI Examples from scivision

Fortran UNified Device Acceleration Library (FUNDAL): seamlessly unifies OpenACC and OpenMP runtime routines calling in order to minimize end-user's effort in developing device-offloaded applications, by Francesco Salvadore et al.

Framework for Extensible Asynchronous Task Scheduling (FEATS): project to develop a parallel Fortran 2018 asynchronous, task-scheduling framework for use in a range of applications, from sourceryinstitute

FUN_parallel_examples: examples of parallel programming using coarrays, do concurrent, MPI, and OpenMP, by Brad Richardson

GPU programming with OpenMP offloading: exercises and other material for course, by Jussi Enkovaara et al.

gpu-programming: meta-GPU lesson covering general aspects of GPU programming as well as specific frameworks, from ENCCS. Some languages used are Fortran, C++, C, Python, and Julia.

gpu-tips: Fortran examples of CUDA and directives tips and tricks for IBM Power + Nvidia Systems, by dappelha

havaita: MPI Fortran type inference -- shows how to write a modern Fortran interface to MPI which infers arguments that are already contained in the Fortran type itself, such as element type and count, and renders optional arguments when context is sufficient, by Jeff Hammond

Hybrid CPU programming with OpenMP and MPI: exercise material and model answers for the CSC course, by Jussi Enkovaara and Martti Louhivuori

Index Map: index_map_type Fortran module, by Neil Carlson, provides core capabilities that support use of distributed arrays in MPI-based SPMD programs through the index_map derived type that describes the mapping of an array's index set to processes. The mapping allows for overlap between processes, and provides collective array gather procedures and scatter reduction procedures associated with that overlap.

INHDF5: various utilities for using the parallel HDF5 library with MPI and Fortran, by Ioannis Nompelis

INshm: library for accessing chunks of shared memory across process running on a Unix host in Fortran, by Ioannis Nompelis

IntroMPI: codes from the Introduction to MPI course, by by Heather Ratcliffe and Chris Brady. A follow-up is IntermediateMPI-new, which has the C and Fortran codes discussed in the talks, suggestions for exploring MPI types and Domain Decomposition problems, and scripts for using MPI on cluster systems.

matmul_fortran_tensor_core: Example code for calling Tensor Core GEMM from Fortran, by Sam Hatfield

miniWeather: mini app simulating weather-like flows for training in parallelizing accelerated HPC architectures, by mrnorman. Currently includes MPI (C, Fortran, and C++), OpenACC Offload (C and Fortran), OpenMP Threading (C and Fortran), OpenMP Offload (C and Fortran), and C++ Portability.

MPI-course: material for the course An introduction to parallel programming using Message Passing with MPI

mpi_examples: MPI examples: Bcast, Point-to-point communication, Scattering and Gathering 2D and 3D arrays with variable chunk sizes, and MPI Derived data types: MPI_Type_contiguous, MPI_Type_create_subarray, MPI_Type_resized, by maruthinh

mpifort-io-example: example of how to parallel read/write 3D arrays (plus a header) with MPI-IO, by David Liptai

mpifx: provides modern Fortran (Fortran 2003) wrappers around routines of the MPI library to make their use as simple as possible, from dftbplus. Currently several data distribution routines are covered.

nbody-ifx-do-concurrent: N-body Fortran code port to test ifx (Intel Fortran) GPU offload of do concurrent, by Saroj Adhikari

NVIDIA OpenACC Course Sources and Labs: contains sources related to the lectures and labs for the NVIDIA OpenACC course.

OpenACC Fortran Memory Library (OAFML): eases handling OpenACC memory offloading on devices (GPU), in Fortran 2003+ with OpenACC directives standard compliant, by Francesco Salvadore et al.

OpenACC Official Training Materials: training materials by Jeff Larkin et al., covering profiling, OpenACC directives, GPU programming, data management, and loop optimizations, with code examples in Fortran, C, and C++. The OpenACC Porting and Portability Guide contains a proposed workflow when refactoring an existing application to use OpenACC, with examples provided in C, C++ and Fortran.

OpenCoarrays: parallel application binary interface for Fortran 2018 compilers, from sourceryinstitute

OpenMPExamples: list of programming assignments from a course Parallelism with Open MP and their solutions in C and Fortran, by Heather Ratcliffe and Chris Brady

OpenMP for Computational Scientists: 6-part course introducing the OpenMP programming model to Fortran programmers, with example codes and slides, by Tom Deakin et al.

OpenMP_fortran_codes: basic OpenMP codes written in Fortran, by Kuldeep Tolia

openmp-series-2024: slides and assignment for an OpenMP training series at NERSC

Parallel Halo Exchange Using Fortran Coarrays: code and test cases for investigating Fortran coarray implementations of a parallel halo exchange operation associated with domain decomposition methods for PDE, by Neil Carlson

PararealF90: implementation of Parareal by Daniel Ruprecht solving 3D Burger's equation using a forward Euler and a RK3SSP method as coarse and fine integrators. It contains three different implementations of Parareal, one based on MPI, one using OpenMP without pipelining and one using OpenMP with pipelining. All three versions compute the same result, the purpose of the code is to compare different implement strategies with respect to speedup, memory footprint and energy consumption.

Particle-In-Cell Scalable Application Resource (PICSAR): high performance repository intended to help scientists porting their Particle-In-Cell (PIC) codes to the next generation of exascale computers. PICSAR exploits the three levels of parallelism that will be required to achieve good performances on future architectures: distributed memory parallelization (internode), shared memory parallelization (intranode) and vectorization.

PM-Programming-Language: The PM Programming Language, implemented in Fortran 95 by Tim Bellerby, is designed to facilitate the creation of numerical models on parallel systems. It combines concepts of parallelisation and vectorisation into a unified model.

RookieHPC: web site covers major technologies in High-Performance Computing (HPC), such as OpenMP and MPI, providing documentation along with examples, as well as exercises and sometimes tools

rpncomm: MPI-based communication routines for models, by mfvalin

rwlock: simple readers-writer lock in Fortran using OpenMP atomic constructs, by kc9jud. This can be used to protect a memory location which may be read by many threads simultaneously, but only modified by a single thread.

Simple OpenACC Fortran Examples: hosts fundamental, but useful examples, by jeng1220. Each example is just a few dozen lines of code.

SPEL_OpenACC: code associated with the paper SPEL: Software tool for Porting E3SM Land Model with OpenACC in a Function Unit Test Framework, by Peter Schwartz et al., 2022 Workshop on Accelerator Programming Using Directives (WACCPD). It provides a robust method to port the E3SM Land Model (ELM) onto GPUs.

standalone_mpi_f08_module: attempt to implement MPI Fortran 2018 support, by Jeff Hammond

Tensor Algebra Library Routines for Shared Memory Systems: Nodes equipped with multicore CPU, NVIDIA GPU, AMD GPU, and Intel Xeon Phi (TAL_SH): implements basic tensor algebra operations with interfaces to C, C++11, and Fortran 90+, by Dmitry I. Lyakh

ur-parallel-programming: notes and cheatsheets on the course Parallel Programming in Fortran at the University of Regensburg, covering Fortran in general, MPI, and OpenMP, by Jonas Süskind

Partial Differential Equations

boxcode2d-legacy: Fortran and Matlab wrapper by Manas Rachh et al. for running the 8th order box code by Greengard and Ethridge, from the paper A new fast-multipole accelerated poisson solver in two dimensions SIAM Journal of Scientific Computing (2001)

cedar: robust, variational multigrid library implementing Black Box Multigrid (BoxMG) on large scale parallel systems, by David Moulton, Luke N. Olson and Andrew Reisner

Computational Hyperbolic PDE (chpde): codes based on Clawpack and the books Finite volume methods for hyperbolic problems (2002), by Randall J. LeVeque and Riemann Problems and Jupyter Solutions: Theory and Approximate Solvers for Hyperbolic PDEs (2020) by David I. Ketcheson, Randall J. LeVeque, and Mauricio J. del Razo

coral: spectral PDEs solver for the plane-layer geometry, written in modern Fortran and highly scalable, by BenMql. The name comes from the initial motivation, which was Convection in Rapidly rotating Layers (even though the code has now a much more general scope).

ElliFEM: numerically solves the elliptic family of linear partial differential equations. Examples include the Poisson and Helmholtz equations. Reference: M. Drolia, et al. Enriched finite elements for initial-value problem of transverse electromagnetic waves in time domain. Computers & Structures, 182, 354-367, 2017.

fishpack: collection of Fortran programs and subroutines that solve 2nd- and 4th-order finite difference approximations to separable elliptic Partial Differential Equations (PDEs), by jlokimlin and t-bltg

FOODIE, Fortran Object-Oriented Differential-equations Integration Environment: numerical integration of Differential-equations such as Ordinary and Partial Differential Equations (ODE, PDE), from Fortran-FOSS-Programmers. FOODIE is tailored to the systems arising from the semi-discretization of PDEs, but it is not limited to them.

forestclaw: parallel, multi-block adaptive finite volume code for solving PDEs on a hierarchy of logically Cartesian meshes

fortran-weno: implements (WENO) weighted essentially non-oscillatory algorithms, by Li Dong and Zhou Lilong

heatcompact3d: 3D heat equation solver based on 6th order compact finite differences schemes, by Thibault Lestang

laplace-2D: solve Laplace (or Poisson) equation in 2D on a rectangular grid using OpenMP, by Taras Kuzyo

lpm-v2: Lagrangian Particle Methods for PDEs. Associated paper: P. Bosler, J. Kent, R. Krasny, and C. Jablonowski. A Lagrangian particle method with remeshing for tracer transport on the sphere, Journal of Computational Physics, Volume 340, (2017), Pages 639-654

MORFEUS: framework for the solution of partial differential equations (PDEs) written in modern Fortran, from sourceryinstitute. It is object oriented and attempts to provide useful abstractions for the solution of PDEs that are easy to use and performant.

N-Dimensional Solver Multrigrid (NDSM): computes the potential (current-free) magnetic field on a rectilinear mesh in a Cartesian box, given the normal component of the magnetic field on each boundary face. An associated paper is Relative Magnetic Helicity Based on a Periodic Potential Field, by Kai E. Yang et al., Astophysical Journal (2020).

Numerical Analysis Problems and Solutions: codes to solve boundary value problems and the time-dependent (time-independent) heat equation over a one dimensional region, by Pavel Kureichyk

Octree-mg: implements parallel geometric multigrid methods on quadtree/octree grids, which can be used to solve elliptic PDEs such as Poissons's equation. Associated paper: A geometric multigrid library for quadtree/octree AMR grids coupled to MPI-AMRVAC, by J. Teunissen and R. Keppens, Computer Physics Communications (2019).

PadeOps: ybrid OpenMP/MPI derivative operators using Compact Difference (6th and 10th Order) and Spectral (Fourier and Chebyshev) Methods to solve PDEs, from Howland-Lab

pdecheb: Chebyshev polynomial software for elliptic-parabolic Systems of PDEs, by Ivan Pribec

pigasus: generic Python package for solving (system of) Partial Differential Equations, by Ahmed Ratnani. Its core is written in Fortran. The aim of Pigasus is to discretize spatial differential operators, which makes it easier to write different time schemes thanks to the oriented object aspect of Python.

PoisFFT: solves the Poisson equation on a uniform Cartesian grid using the Fast Fourier Transform, by Vladimír Fuka and Javier Alejandro Acevedo Barroso. It calls the library FFTW3 and (if MPI is used) also PFFT.

PyClaw: Python-based interface to the algorithms of Clawpack and SharpClaw. It also contains the PetClaw package, which adds parallelism through PETSc.

ReCoDE-Turing-Patterns-and-Partial-Differential-Equations: non-linear partial differential equation (PDE) solver, designed to address both boundary value problems (BVP) and initial boundary value problems (IBVP) with temporal progression, by elliot-jamesb et al. It is a component of the Research Computing and Data Science Examples (ReCoDE) project.

riemann: centralized location for all Clawpack-compatible Riemann solvers

Sequential Software for the Robust Multigrid Technique: code associated with book by S. I. Martynenko. Presents basic concepts of modern numerical methods for mathematical modeling of physical and chemical processes in the computational continuum mechanics (thermal conductivity, chemical hydrodynamics, convective heat transfer, electrodynamics, etc.). Robust_Multigrid_Technique_2021_OpenMP is an OpenMP version.

sippp: solves singularly perturbed parabolic problems, by Nico Schlömer. The library contains routines which handle the generation of meshes (in particular layer adapted meshes) when treating singularly perturbed problems as well as a wide range of A-stable Runge-Kutta methods.

Spectral Element Libraries in Fortran (SELF): object-oriented Fortran library that support the implementation of Spectral Element Methods for solving partial differential equations, by Joe Schoonover. The SELF API is designed based on the assumption that SEM developers and researchers need to be able to implement derivatives in 1-D and divergence, gradient, and curl in 2-D and 3-D on scalar, vector, and tensor functions using spectral collocation, continuous galerkin, and discontinuous galerkin spectral element methods.

spherepack: computes common spherical differential operators including divergence, vorticity, latitudinal derivatives, gradients, the Laplacian of both scalar and vector functions, and the inverses of these operators, by Jon Lo Kim Lin. For example, given divergence and vorticity, the package can be used to compute velocity components, then the Laplacian inverse can be used to solve the scalar and vector Poisson equations.

Surfaces: Code for discretizing certain singular integral operators given on surfaces, including single and double layer potentials, associated with paper A Nyström method for weakly singular integral operators on surfaces, by James Bremer and Zydrunas Gimbutas, Journal of Computational Physics Volume 231, Issue 14, 20 May 2012, Pages 4885-4903

Unstructured Finite Volume Solver: unstructured Finite Volume Solver for Partial Differential Equations that is standard Fortran 2018, is object-oriented for separation of geometry, physics and solution, uses coarrays for distributed memory parallelism, and uses the pure, elemental, and do concurrent features for shared memory parallelism, by komahanb

Particle Physics

APFEL: A Parton Distribution Function Evolution Library: performs DGLAP evolution up to NNLO in QCD and to NLO in QED, both with pole and MSbar masses. The coupled DGLAP QCD+QED evolution equations are solved in x-space by means of higher order interpolations and Runge-Kutta techniques.

bmad-ecosystem: library for the simulation of charged particles and X-rays in accelerators and storage rings, by David Sagan et al.

Cosmic ray and HadROnic interactiOn MOnte-carlo frontend (chromo): generic user interface to popular event generators used in cosmic ray and high-energy particle physics, from impy-project

Cyclone: cyclotron orbit code by Bruce F. Milton. It calculates orbits using both magnetic and electric field maps and is therefore useful for central region design.

DDCalc: set of routines and a frontend for doing various dark matter direct detection calculations for several experimental results, from GambitBSM. Most notably, these include Poisson likelihoods (binned and unbinned) and p-values based on the maximum gap method (Yellin 2002).

dmfortfactor: program for experimental WIMP analysis that computes the differential event rate per recoil energy for WIMP-nucleon scattering events, by Calvin Johnson and Oliver Gorton

DPMJET: Monte Carlo event generator for hadron, photon and nuclear collisions with a several decade-long history. DPMJET is an integral part of FLUKA, a fully integrated particle physics MonteCarlo simulation package, acting as event generator for nucleus-nucleus collisions above 5 GeV/nucleon and for hadronic collisions at high energies.

EventShapes_HiggsTOgg_QCD_NLO: code for EERAD3 to compute three-jets event shapes QCD corrections up to NLO to Higgs decays into a pair of gluons and up to NLO into a bottom-antibottom pair.

GEometry ANd Tracking (geant3): simulation software using Monte Carlo methods to describe how particles pass through matter, by Ivana Hrivnacova et al.

halld_sim: simulation for the GlueX Experiment in Hall D, from JeffersonLab. Contains programs used to do detector simulation and event generation.

Higher Order Perturbative Parton Evolution Toolkit (HOPPET): carries out DGLAP evolution and other common manipulations of parton distribution functions (PDFs), by gavinsalam. Within HOPPET, PDFs are represented on a grid in x-space so as to avoid limitations on the functional form of input distributions.

IMPACT-T: fully three-dimensional program to track relativistic charged particles taking into account space charge forces, short-range longitudinal and transverse wakefields, coherent synchrotron radiation (CSR) wakefield in accelerators, by Ji Qiang et al.

IMPACT-Z: parallel+serial particle-in-cell code whose primary purpose is to model the dynamics of multiple charged particle beams in linear and ring accelerators, by Ji Qiang et al.

JHUGen: generator giving parton-level information including full spin and polarization correlations for the processes ab → X → VV (V=Z,W,gamma), VBF, X+JJ, pp → VX, ee → VX

LRSM: Generic Left-Right Symmetric Model, by oozdal

MAD-X: project with a long history, aiming to be at the forefront of computational physics in the field of particle accelerator design and simulation. Its scripting language is de facto the standard to describe particle accelerators, simulate beam dynamics and optimize beam optics at CERN.

MCFM-RE: NNLL resummation for jet-veto cross sections in colour singlet processes, by lcarpino

proVBFH: QCD corrections to Vector Boson Fusion (VBF) single and double Higgs production, by Alexander Karlberg and Frédéric Dreyer

remoll: simulations for the MOLLER Experiment at Jefferson Lab, which proposes to measure the parity-violating asymmetry in electron-electron (Møller) scattering

simc_gfortran: standard Hall C Monte Carlo for coincidence reactions, from JeffersonLab

SPheno: SPheno stands for S(upersymmetric) Pheno(menology). The code, by JP-Ellis, calculates the SUSY spectrum using low energy data and a user supplied high scale model as input.

USP-JEWEL: Jet propagation (currently done using an unofficial modification of JEWEL) in realistic viscous hydrodynamics modeled using vUSPhydro, by Leonardo Barreto de Oliveira Campos

vbfnlo: fully flexible parton level Monte Carlo program for the simulation of vector boson fusion, double and triple vector boson production in hadronic collisions at next-to-leading order in the strong coupling constant

Whizard-mirror: efficient calculation of multi-particle scattering cross sections and simulated event samples. Mirror of private git

Plasma Physics

Advanced LOwer Hybrid Antenna (ALOHA): coupling code for Lower Hybrid Current Drive antennas facing tokamak magnetized fusion plasma, by Julien Hillairet. This coupling code is based on the linear coupling theory.

Angular Momentum model Of Relativistic Electron beam transport (AMoRE): code parallelized using OpenMP for fast simulations of laser-generated relativistic electron beam transport in solid or dense plasma targets, by Michaël J. Touati. It computes the two first angular moments of the relativistic Vlasov-Fokker-Planck-Belaiev-Budker kinetic equation completed with the Minerbo maximum angular entropy closure and coupled with target Magneto-Hydrodynamic equations considering time scales during which the return current has already set up.

aorsa3d: solves for the wave electric field and heating in a 3-D stellerator plasma heated by radio frequency waves using an all orders spectral algorithm, by Naoto Tsujii and David L. Green

Arbitrary Linear Plasma Solver (ALPS): parallelised numerical code that solves the Vlasov-Maxwell dispersion relation in hot (even relativistic) magnetised plasma, associated with paper ALPS: the Arbitrary Linear Plasma Solver by Verscharen, D., Klein, K. G., Chandran, B. D. G., Stevens, M. L., Salem, C. S., and Bale, S. D.: , J. Plasma Phys. (2018)

EDIPIC-2D: 2D version of EDIPIC, a particle-in-cell code developed for low temperature plasma applications, by Dmytro Sydorenko et al..

Flexible Optimized Coils Using Space curves (FOCUS): nonlinear optimization code for designing 3D coils. Its sibling, FAMUS, can be use to design permanent magnets.

gkvp: Vlasov simulation code based on delta-f gyrokinetic equations in a local flux-tube geometry. The code has been developed for analyzing plasma turbulence in magnetized plasmas, such as magnetic fusion and magnetosphere.

Guiding-center ORbit Integration with Local Linearization Approach (GORILLA): computes guiding-center orbits for charged particles of given mass, charge and energy in toroidal fusion devices with three-dimensional field geometry. This guiding-center orbit code is designed to be used in scientific plasma physics simulations in the field of magnetic confinement fusion.

I2MEX: ideal 2-d Magnetohydrodynamic Equilibrium on Xplasma: by providing a standard equilibrium representation, allows stability codes to obtain metric information from a variety of equilibrium sources. These include GEQDSK (EFIT format), INP1/inp1.cdf (CHEASE), eqdsk.cdf (JSOLVER) as well as TRANSP run data stored on local file system or in the MDSPlus tree.

KiNetic Orbit-averaging SOlver for Stellarators (KNOSOS): calculates neoclassical transport in low-collisionality plasmas of three-dimensional magnetic confinement devices by solving the radially local drift-kinetic and quasineutrality equations, by José Luis Velasco. It relies on orbit-averaging to solve the drift-kinetic equation very fast.

KORC: Kinetic Orbit Runaway Code, from ORNL-Fusion. PARVMEC is a 3D Equilibrium solver with nested flux surfaces, LIBSTELL is the main stellarator resource library, DIV3D is a field line followning and intersection code, BOOZ_XFORM converts VMEC coordinates to Boozer coordinates, MAKEGRID precomputes vacuum fields, V3RFUN computes magnetic diagnostic response functions, SURFACE computes vector potential at wall structures, and DESCUR uses a steepest descent algorithm to find a least squares approximation to an arbitrary 3-d space curve. BMW is a code for extending fields belond the VMEC domain in a manner that ensures divergence free fields. BMW does a Biot-Savart volume integration of of the equilibrium current density to obtain a continous vector potential everywhere on the mgrid grid. PoinBabel generates Poincare sections using KORC methods and different field interpolation options. Stellgap calculates the shear Alfven gap structure for 3D configurations (stellarators, RFPs, 3D tokamaks). AE3D calculates shear Alfven eigenmodes for 3D configurations (stellarators, RFPs, 3D tokamaks). PENTA calculates the neoclassical parallel flows, radial particle and energy fluxes, and the radial electric field for a surface given the plasma profiles (n, T), surface geometry information (from VMEC) and the monoenergetic transport coefficients (from DKES). p2f computes a particle to distribution function.

New Hampshire Dispersion relation Solver (NHDS): solves the linear hot-plasma dispersion relation based on the Vlasov-Maxwell set of equations, by Daniel Verscharen

Onion-Skin Modeling + EIRENE + DIVIMP for edge analysis (OEDGE): OEDGE/DIVIMP/LIM plasma edge simulation codes for fusion reactor applications, from ORNL-Fusion

Quasilinear Electromagnetic Oscillations (QLEO): code based on the quasilinear kinetic equation which self-consistently describes how a given velocity distribution function of a homogeneous gyrotropic plasma evolves in time in the presence of an unstable spectrum of parallel propagating, electromagnetic linear eigenmodes, by Patrick Astfalk. The implemented formalism is based on the quasilinear kinetic equations given in, e.g., 'Methods in Nonlinear Plasma Theory' by R. C. Davidson (1972).

RAYS: plasma ray tracing code from ORNL-Fusion. The primary objective is to provide a starting point for discussion of what a modern ray tracing code, built on a green-field site might look like.

Reactive Multifluid and Kinetic Transport in 1D (ReMKiT1D): framework for building 1D multi-fluid models of the tokamak Scrape-Off Layer with support for kinetic electron effects and collisional-radiative modelling, by Stefan Mijin and Alfie Adhemar

SCENE: tokamak equilibrium solver which can generate equilibria in a variety of file formats, from PlasmaFAIR

stella: solves the gyrokinetic-Poisson system of equations in the local limit using an operator-split, implicit-explicit numerical scheme, by Denis St-Onge et al. It is capable of evolving electrostatic fluctuations with fully kinetic electrons and an arbitrary number of ion species in general magnetic geometry, including stellarators.

Stellarator Fokker-Planck Iterative Neoclassical Conservative Solver (SFINCS): computes neoclassical effects in nonaxisymmetric or axisymmetric toroidal plasmas, such as stellarators and tokamaks, by Matt Landreman et al. The code solves a drift-kinetic equation for the distribution function of each species.

STELLOPT: stellarator optimization code, from PrincetonUniversity. A stellarator is a plasma device that relies primarily on external magnets to confine a plasma.

Zero-Dimensional Plasma Kinetics solver (ZDPlaskin): module designed to follow the time evolution of the species densities and gas temperature in a non-thermal plasma with an arbitrarily complex chemistry

Physics

Acceleration by Laser and Dynamics of charged particles (ALaDyn): particle-in-cell code firstly described in ALaDyn: A High-Accuracy PIC code for the Maxwell-Vlasov Equations by C. Benedetti et al., published on IEEE Transactions on Plasma Science, 36 4, 1790-1798 (2008) and then again in the update Charge preserving high order PIC schemes by P. Londrillo et al., published on Nucl. Instrum. Meth. A, 620 1, 28-35 (2010).

Accurate Biot-Savart routines with Correct Asymptotic Behaviour (abscab-fortran): computes the magnetic field and the magnetic vector potential of filamentary current carriers in the form of a circular loop and straight segments, by Jonathan Schilling. Arbitrary geometries of conductors can be approximated by a polygon along its contour and the connecting segments between the polygon vertices are modeled by straight segments.

Anharmonic-lattice-dynamics (ALADYN): lattice dynamics code that calculates thermodynamic and thermal transport properties of solid crystalline materials from data on their force and potential energy as a function of positions, using density functional theory or classical molecular dynamics as input data, by KeivanS et al.

BDpack: GPU-enabled Brownian dynamics package for simulation of polymeric solutions, by Amir Saadat. An associated paper is Computationally efficient algorithms for incorporation of hydrodynamic and excluded volume interactions in Brownian dynamics simulations: A comparative study of the Krylov subspace and Chebyshev based techniques, A. Saadat and B. Khomami, J. Chem. Phys., 140, 184903 (2014).

Biased-versus-unbiased-codes: Python and Fortran codes used to generate plots in J. Aguilar, J.J. Ramasco, and R. Toral Biased versus unbiased numerical methods for stochastic simulations: application to contagion processes

Bose-Einstein_Condensates: solve Bose-Einstein condensates problems and related algebraic problems in quantum mechanics, with Fortran 90 and Python 3 languages, by brito-leonardo

Cartesian-coordinate Oblique-boundary Particles and Thermals In Cell (COPTIC): moves particles in three dimensions of space and time (6 phase-space dimensions) and simultaneously calculates the self-consistent electrostatic potential in the presence of a neutralizing species governed by a thermal Boltzmann factor, or of a second particle species, by ihutch and chaako

CDMFT-LANC-ED: Lanczos based solver for the Cluster Dynamical Mean-Field Theory using the N_up:N_dw implementation, from QcmPlab

chunkmatc: high order layer potential evaluation library in R^2, solving the Laplace and Helmholtz equations, by Zydrunas Gimbutas

codata: provides the codata constants 2010, 2014 and 2018, by Milan Skocic. The raw codata from http://physics.nist.gov/constants are parsed line by line where the columns name, value, uncertainty and unit are formatted to be conform to Fortran double precision. pycodata is a Python wrapper.

Computational Environment for Nuclear Structure (CENS): many-body codes developed by Morten Hjorth-Jensen and collaborators

CRYSTAL: code for crystal diffraction in X-ray Oriented Programs (XOP) (perfect, bent, mosaic crystals in Bragg and Laue geometries), associated with paper Simulation of X-ray diffraction profiles for bent anisotropic crystals, by M. Sanchez del Rio, N. Perez-Bocanegra, X. Shi, V. Honkimäki and L. Zhang, Journal of Applied Crystallography (2015). 48, 477-491

d3q and thermal2: d3q computes fully ab-initio the anharmonic third-order dynamical matrix and the three-body force constants, and thermal2 manipulates 2-body and 3-body force constants to study vibrational properties of materials.

DASH: versatile and interactive package for solving crystal structures from powder diffraction data, by Jason Christopher Cole et al. DASH solves structures by simulated annealing of structural models to indexed diffraction data and features a helpful wizard to guide the user through the entire structure solution process.

DFermion: implements a dual fermion framework for general lattice model, together with the iQIST package, by Li Huang

dftatom: Routines for Radial Integration of Dirac, Schrödinger, and Poisson Equations: implements accurate and efficient radial Schrödinger and Dirac shooting-method solvers. Detailed description of methods, convergence and implementation is in the following article: Ondřej Čertík, John E. Pask, Jiří Vackář, dftatom: A robust and general Schrödinger and Dirac solver for atomic structure calculations, Computer Physics Communications, Volume 184, Issue 7, July 2013, Pages 1777-1791, ISSN 0010-4655, 10.1016/j.cpc.2013.02.014. Preprint: arXiv:1209.1752.

DielectricKit: high-performance computing toolkit to calculate and visualize polarizability and dielectric response function within the random-phase approximation, by Meng Wu.

Driver-Database: collection of programs that solve problems using libraries from QcmPlab, including Dmft_ED for Exact Diagonalization based DMFT method, SlaveSpins for the Slave Spins method, and Lattice_ED for programs implementing lattice Exact Diagonalization

Dr. Probe command-line tools (drprobe_clt): CELSLC is a program to calculate object transmission functions to be used as phase gratings in a multislice algorithm for electron diffraction calculations. MSA is a program to calculate the diffraction of beam of probing electrons through a crystal. MSA is a program to calculate the diffraction of beam of probing electrons through a crystal.

DSLEAP: algorithms for determining lattice oscillations. Reference: "Anharmonic lattice dynamics in large thermodynamic ensembles with machine-learning force fields: the breakdown of the phonon quasiparticle picture in CsPbBr3", by Jonathan Lahnsteiner and Menno Bokdam

ebmb: solve multiband Eliashberg equations of superconductivity, by Jan Berges

EDRIXS: simulates RIXS spectra based on exact diagonalization (ED) for strongly correlated materials. Associated paper: EDRIXS: An open source toolkit for simulating spectra of resonant inelastic x-ray scattering, Y.L. Wang, G. Fabbris, M.P.M. Dean and G. Kotliar, Computer Physics Communications, 243, 151 (2019),

electron-phonon Boltzmann transport (elphbolt): Fortran 2018 code for solving the coupled electron and phonon Boltzmann transport equations (BTEs), by nakib. Using ab initio electron-phonon and phonon-phonon interactions and a fully wave vector and electron band/phonon branch resolved formulation of the BTEs, elphbolt can calculate the phonon and electronic thermal conductivities; electronic conductivity; phonon and electronic contributions to the thermopower; and effect of the mutual electron-phonon drag on the transport coefficients listed above.

ElectroStatic Vlasov-Maxwell (ESVM): 1D-1V Vlasov-Maxwell Fortran code parallelized using OpenMP and developed for an educational purpose as well as for testing linear finite volume numerical advection schemes such as the donor cell, the Lax-Wendroff, the beam warming or the Fromm method and non-linear ones such as the minmod, the superbee, the Van Leer, the MUSCL1 or the MUSCL2 method, by michaeltouati and nzeal

ElVibRot-TnumTana: general quantum dynamics code by lauvergn using curvilinear coordinates and a numerical kinetic energy operator to compute (i) Vibrational levels, intensities for floppy molecular system (ii) Wave-packet propagation with or without time dependent Hamiltonian (iii) Quantum gate and optimal control.

EMUstack: simulation package for calculating light propagation through multi-layered stacks of dispersive, lossy, nanostructured, optical media, by Bjorn Sturmberg. It implements a generalised scattering matrix method, which extends the physical intuition of thin film optics to complex structures.

Equilipy: Python package by Sunyong Kwon and Sam Reeve with Fortran backend that offers multicomponent multiphase equilibrium calculations based on the CALPHAD (CALculation of PHAse Diagram) approach. With a set of Gibbs energy description (Thermochemical database) and input conditions (Composition, temperature, pressure), equilibrium phase configureation, amount, composition, and thermochemical properties can be obtained.

Esfahan Spin Simulation package (ESpinS): Package for classical Monte-Carlo simulation of spin systems, by nafiserb. In ESpinS, the spin model hamiltonian of a spin system can be defined through the Heisenberg exchange, bi-quadratic, Dzyaloshinskii-Moriya, and single-ion interactions.

Ether: based on the classical lattice model (Heisenberg, XYZ, etc.), Ether has been developed by Mukesh Kumar Sharma to study the thermodynamics of any crystal system by performing the basic Monte Carlo methods. Metropolis algorithm has been used to equate all the observables

exocross: Fortran 2003 code to generate molecular cross-sections using line lists in the ExoMol format, by Trovemaster

Felix: Bloch wave method diffraction pattern simulation software, from WarwickMicroscopy

FIDASIM: A Neutral Beam and Fast-ion Diagnostic Modeling Suite: code associated with paper "Progress in modelling fast-ion D-alpha spectra and neutral particle analyzer fluxes using FIDASIM", by Benedikt Geiger et al.

Fingerprint: computation of overlap matrix based fingerprints. The fingerprint vector contains the eigenvalues of the overlap matrix which is itself constructed from gaussian type orbitals.

flex-general: applies the Fluctuation Exchange Approximation (FLEX) to study superconductivity and magnetism in multiband tight-binding models, by John Deisz. flex-stripes analyzes charge and magnetic stripe formation in one-band tight-binding models.

FMM3D: compute N-body interactions governed by the Laplace and Helmholtz equations, to a specified precision, in three dimensions, on a multi-core shared-memory machine, from the Flatiron Institute

fmm3dbie: FMM-accelerated boundary integral equation solvers that currently support high-order triangulation of smooth surfaces, from fastalgorithms

fort-fput: explores the Fermi–Pasta–Ulam–Tsingou(FPUT) problem in chaos theory by simulating a 1D chain with non-linear dynamics with symplectic integrators, by Jimmy Chen

fortran_udunits2: interface by mfvalin to the libudunits2 C library from Unidata that provides for arithmetic manipulation of units and for conversion of numeric values between compatible units

FourPhonon: extension module to ShengBTE for computing four-phonon scattering rates and thermal conductivity, by Zherui Han et al.

fresco: scattering code for coupled-channels calculations, by I-Thompson. Frescox is an updated version.

fundamental_constants: modules with the CODATA fundamental physical constants, generated by a Python script from the NIST website, by Vincent Magnin

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

Generalized Spallation Model and Event Generator: composed of several sub-models, consisting primarily of the Standard and Modified Dubna Cascade Models (DCM), a Coalescence model, Preequilibrium model, and the GEM2 (Generalized Evaporation Model), being used for simulating compound Evaporation and fission, from Los Alamos National Laboratory.

Green-Tea-: Green's functions quantum transport solver based on ab-initio physical models, associated with paper Unit cell restricted Bloch functions basis for first-principle transport models: Theory and application, by M. G. Pala, P. Giannozzi, and D. Esseni, Phys. Rev. B 102, 2020

GNI: Huckel matrix-based algorithm employed by this program computes the energy of a triangulene or a graphene nanoisland (GNI) by performing diagonalization, by Amer Alrakik

Guided_Missile_Simulation: Air-to-Air Missile Simulation written in modern Fortran, by bgin

honeycombinations: simulates adsorbate structures on graphene via tight binding and Monte Carlo, by Jan Berges

inverse-obstacle-scattering2d: solves inverse obstacle scattering problems to recover the shape of the obstacle for sound soft, sound hard, and penetrable objects, by Manas Rachh and Travis Askham

IrisFDTD-Academic: implements the Finite-Difference Time-Domain (FDTD) method. It is a "toy version" of the IrisFDTD program, a Maxwell’s equations solver in the field of computational electrodynamics for photonics and nanotechnology, by Sergio G Rodrigo.

kmos: kMC on steroids: A vigorous attempt to make lattice kinetic Monte Carlo modelling easier, by mhoffman et al.

Koko Optical Design Software (KODS): raytracing software for the design and analysis of optical imaging and illumination systems. Koko has evolved from the optics design program KDP-2 that was made open-source by its original developer James E. Klein.

LibForQ-v1: performs several numerical tasks one frequently needs when working in quantum information science, such as trace, partial trace, and partial transpose; entanglement, discord, and coherence quantifiers; Pauli group (PG), Generalized Gell Mann Matrices (GGMM), and Bloch vector and correlation matrix with GGMM, by Jonas Maziero

libmbd: implements the many-body dispersion (MBD) method in several programming languages and frameworks. The Fortran implementation is the reference, most advanced implementation, with support for analytical gradients and distributed parallelism, and additional functionality beyond the MBD method itself.

libnegf: calculates Equilibrium and Non Equilibrium Green's Function in open systems and related quantities, within an efficient sparse iterative scheme. Associated paper: Non-equilibrium Green's functions in density functional tight binding: method and applications, by A Pecchia, G Penazzi, L Salvucci and A Di Carlo, 2008 New J. Phys. 10 065022

libTNSP: code for paper TNSPackage: A Fortran2003 library designed for tensor network state methods, by Shaojun Dong et al., Computer Physics Communications, Volume 228, July 2018, Pages 163-177

Linear Response Transport Centre (LinReTraCe): package for the simulation of transport properties driven by carriers with finite lifetimes, associated with the paper Prototypical many-body signatures in transport properties of semiconductors, by Matthias Pickem et al., Phys. Rev. B (2022)

Los Alamos Crystal Cut (LCC): simple crystal builder, an easy-to-use and easy-to-develop code to make crystal solid/shape and slabs from a crystal lattice, by Christian Negre

libdlr: Fortran subroutines to build and work with the discrete Lehmann representation for single particle imaginary time Green's functions, as well as the stand-alone Python module pydlr implementing the same functionality, by Jason Kaye and Hugo U.R. Strand

Linear Electromagnetic Oscillations in Plasmas with Arbitrary Rotationally-symmetric Distributions (LEOPARD): dispersion relation solver which can derive the frequencies and growth rates of electromagnetic waves with arbitrary propagation angle in homogeneous plasmas with an arbitrary number of particle species, by Patrick Astfalk. LEOPARD allows the computation of the (fully-kinetic) dielectric tensor components for both bi-Maxwellian or arbitrary gyrotropic velocity distributions. The implemented expressions for the dielectric tensor components are based on 'Kinetic Theory of Plasma Waves' by M. Brambilla (1998).

LINVARIANT: universal model generator in the field of computational condensed matter physics, by Peng Chen et al. Using group theory, it mathematically models physical systems such as lattice, electron, spin and their coupling systems.

MagTense: magnetostatic and a micromagnetism calculation framework, in Fortran with Matlab MEX and Python interfaces, by Kaspar Kirstein Nielsen et al.

Maxwell Construction Solver: finds the saturation pressure, vapor and liquid density at a saturation temperature (Tsat) for Van der Waals (VW), Peng-Robinson (PR), Redlich-Kwong (RK), Soave-Redlich-Kwong (SRK), Carnahan-Starling (CS). Associated paper: Multipseudopotential interaction: A consistent study of cubic equations of state in lattice Boltzmann models, by S. Khajepor and B. Chen, Physical Review E 93 (1), 013303 (2016)

McPhase: Mean-field monte-Carlo simulation program for magnetic PHASE diagrams and excitations, originally developed by Martin Rotter. McPhase uses the mean-field approximation to calculate magnetic structures and magnetic-field vs temperature phase diagrams from input files which specify the crystal structure of a magnetic material and the exchange interactions between the magnetic ions in this material.

MDCM: Machine learning code to fit Minimal Distributed Charge Models, by Mike Devereux et al.

Methods-in-Computational-Physics: codes for various methods used in computational physics, such as Monte Carlo, Verlet Algorithm, and Euler and Runge-Kutta algorithms for ordinary differential equations, by Suresh Parekh

MolForge: suite of codes using MPI for the simulation of quantum spin dynamics at the atomistic level, by Alessandro Lunghi. The codes are developed to readily interface with electronic structure codes and make it possible to predict spin decoherence and spin-phonon relaxation fully ab initio.

molpop-cep: code for the exact solution of radiative transfer problems in multi-level atomic systems, by Andrés Asensio Ramos. The novel contribution of the code is that the radiative transfer equations is analytically integrated so that the final problem is reduced to the solution of a non- linear algebraic system of equations in the level populations.

MP_tools: fast generation of elastic and inelastic neutron and X-ray diffuse scattering intensity maps by non-uniform FFT, by Jiri Kulda

NDO: code by Shaojun Dong to make computing Neural Density Operators (NDO) for quantum tomography straightforward, simple and fast

Neural-Network-Quantum-States: machine learning demonstration of neural network quantum states, by acbbullock

NuHamil-public: matrix elements of NN+3N interactions based on chiral effective field theory, by Takayuki Miyagi

Numerical Electromagnics Code (NEC2): UNIX version of NEC2 Antenna Modeler adapted for use with modern computers.

Numerical Reactive Gas-dynamics (NRG): by Ivan Yakovenko

octopus: ab initio virtual experimentation on electron/ion dynamics in external electromagnetic fields of arbitrary intensity, shape and frequency in a hopefully ever increasing range of system types, by M. A. L. Marques et al.

OllinSphere-BiB: solves the Einstein evolution equations in spherical symmetry using a curvilinear version of the BSSN formulation for the 3+1 evolution equations, with different types of matter and different gauge conditions, by Miguel Alcubierre

OpenCalphad: thermodynamic software for calculation of multicomponent equilibria, property and phase diagrams and for database development, by Bo Sundman et al. It has a simple command line interface and an Application Software Interface (OCASI) for integration in simulation software.

Orbital-Dynamics: code for spin-orbital dynamics of spinning object on a curved spacetime, by Tom Kimpson

Parabolic two-band model Analyzer for Nonlinear electron Dynamics in Attosecond phenomena (PANDA): calculates electron dynamics and light-matter interactions, by Shunsuke A. Sato. It is based on a parabolic two-band model for electron structure and dynamics.

PArticles and RAdiation MOnitor (Paramo): solves the Fokker-Planck equation and calculates synchrotron and inverse Compton emission, by Jesus M Rueda-Becerril

paspro: library implementing the polynomials which compute the thermodynamic properties of steam on various boundary lines between regions according to the revised release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam (IAPWS-IF97), by Panos Asproulis

Phase Monte Carlo radiation transport (pMC): code by Lewis McMillan for paper Imaging in thick samples, a phased Monte Carlo radiation transfer algorithm

Physical optics propagation through synchrotron radiation beamlines (PHASE): tool for the optical design of synchrotron radiation beamlines, by Uwe Flechsig. It is based on analytic expressions for nonlinear transformation of beam coordinates across optical elements. Documented here

PyHub: easy-to-use, hybrid Python/Fortran package to solve efficiently the Fermi-Hubbard Model, by Quentin Marecat

qdyn: program for N-dimensional numerical quantum propagation on a grid, by Jiri Janos, Jiri Suchan, and Petr Slavicek

qmllib: Python/Fortran toolkit for representation of molecules and solids for machine learning of properties of molecules and solids, by Anders Steen Christensen and Jimmy C. Kromann.

Quantum Annealing Machine Emulator: quantum annealing simulation on SpinGlass model using Path Integral Monte Carlo method, by Tomoya Tanaka

quasielasticbayes: Python wrappers by Rob Applin et al. for Fortran routines that perform Bayesian analysis on quasi-elastic neutron-scattering data, originally by Devinder Sivia

raytracer_3D: simulates the radiative energy transfer equation for internal gravity waves in 6 dimensions, by ceden

scadyn: code for scattering dynamics calculations, which utilizes a volume integral equation solution for the T-matrices of non-spherical scatterers, by Joonas Herranen. The main motivations for the development of this code are the study of grain alignment dynamics in interstellar environments and optical tweezers and traps.

Scalable Ab-initio Light–Matter simulator for Optics and Nanoscience (SALMON): software based on first-principles time-dependent density functional theory to describe optical responses and electron dynamics in matters induced by light electromagnetic fields, by Shunsuke Yamada et al.

semba-fdtd: parallel Finite-Difference Time-Domain (FDTD) simulator. An associated paper is Miguel Ruiz Cabello, Maksims Abalenkovs, Luis Diaz Angulo, Clemente Cobos Sanchez, Franco Moglie, Salvador Gonzalez Garcia, Performance of parallel FDTD method for shared- and distributed-memory architectures: Application to bioelectromagnetics, PLOS ONE 15(9): e0238115, 2020 https://doi.org/10.1371/journal.pone.0238115

Semi-Lagrangian Library (SeLaLib): modular library for kinetic and gyrokinetic simulations of plasmas in fusion energy devices

SENSMG: Sensitivities of Neutron Reaction Rates, Reaction-Rate Ratios, Leakage, keff, and α Using PARTISN, by jafavorite

[shadow3](https://