查看: 6965|回复: 0

Fortran code on GitHub









Rank: 9Rank: 9Rank: 9

发表于 2021-11-29 14:09:57 | 显示全部楼层 |阅读模式
Art and Music
Art1: Art1 is a program that was 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 vmagnin
forsynth: small Fortran synthesizer to explore sound synthesis, sound effects, electronic music, algorithmic music, etc, by vmagnin
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).
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)
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.
astro-api: makes the astronomical calculations for, 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.
astroTools: command-line tools for astronomy and astrophysics, by AstroFloyd
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
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
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
NEAT: calculates chemical abundances in photoionised nebulae, by Roger Wesson et al. It can propagate uncertainties and compensate for measurement biases affecting weak lines.
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.
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.
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.
starlink: astronomical data processing
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.
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
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.
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.
Discrete Element Model Body (DEMBody): software for Granular Dynamics Simulation for Planetary Science and Geophysics, by Bin Cheng. It incorporates classical granular dynamics simulations and N-body self-gravity calculation.
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
galacticus: semi-analytic model of galaxy formation - a powerful toolkit for modeling the physics of how galaxies form
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.
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-Altitude to Space Transport Estimator (HASTE): high fidelity Monte Carlo code written in modern Fortran for estimating the radiation field seen by a space-based detector from a point source in or above the atmosphere, by wtdailey. The HASTE code includes models for many of the special features of this air-to-space transport problem that are not modeled, or only partially modeled, in other transport codes.
HMcode: augmented halo model for accurate non-linear matter power spectrum calculations, by Alexander Mead and Tilman Troester.
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.
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).
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.
legolas: modern tool for MHD spectroscopy, by n-claes
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.
Microphysics: collection of astrophysical microphysics routines for stellar explosions, by Michael Zingale et al.
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.
msg: Multidimensional Spectral Grids -- project for evaluating radiant properties of stellar atmospheres by rhdtownsend
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.
NormalModes: applies a combination of several highly parallel algorithms to compute the planetary interior normal modes, by js1019
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.
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
pymoog: Python 3 wrapper for running the LTE spectrum synthesis part of the Fortran code MOOG by Chris Sneden
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
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.
starsmasher: smoothed particle hydrodynamics code for smashing stars (and planets), by jalombar
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.
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
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.
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.
Assessment of Programming Languages for Computational Numerical Dynamics: compares different programming languages performance in order to solve CFD and Heat Transfer problems, by arturofburgos
bench_density_gradient_wfn: analyze the performance of evaluating the density gradient with various language implementations (C++/Fortran/Rust/Julia), by zyth0s
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
cumsum_benchmark: benchmarks for the cumulative sum of an array, in Fortran, C++, Matlab, and Python, using various methods
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
LINPACK: original (1000x1000 double precision) LINPACK benchmark, with bugfixes, by zaniyah
Microbenchmarks: micro benchmark comparison of Julia against other languages, including Fortran, from JuliaLang
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
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)
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
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)
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
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
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.
MycoplasmaGenitalium: modelling of Mycoplasma genitalium based on the WC computational model, by Ludovic Autin and Martina Maritan
Reproductive Simulation Library (reprosim): placenta and uterus simulation libraries by Monika Byrne et al.
svFSI: multi-physics finite element solver for patient-specific blood flow simulation including fluid-structure interaction and cardiac electrophysiology, by Vijay Vedula 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.
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.
C_ClWxSim: very simplistic weather and climate simulator for worldbuilding, from RosesHaveThorns
CRUST: Climatic Research Unit Standardisation of Tree-ring data
CTSM: Community Terrestrial Systems Model (includes the Community Land Model of CESM), from ESCOMP
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
gcm: Toy General Circulation Model in Literate Fortran, by pqnelson
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
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.
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.
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 corresponing 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
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.
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.
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.
NoahMP: Noah with multiparameterization options (NoahMP) land surface model, from ESMWG
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)
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.
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.
weather-buoys: Processing weather buoy data in parallel, from modern-fortran
WRF: Weather Research and Forecasting (WRF) model
Code Tools
adjac: automatic differentiation for generating sparse Jacobians, using Fortran 95 and operator overloading, by pv.
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
exceptions: experiment with exceptions in Fortran via a simple preprocessing step, by arjenmarkus
fortran-git: Fortran 2008 ISO C binding interfaces to libgit2, by interkosmos
Fortran-RefCount: simple reference counting for Fortran
libfde: Fortran Development Extensions (library), by Zorkator
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+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.
to_f90: Alan Miller's tool for converting Fortran 77 code to free-form Fortran 90 code, from jbdv-no
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.
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
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.
test_nvfortran_20_11: source code test.f90 by vyu16 attempts to call getitem, defined in dummy_module.f90, incorrectly. Both ifort and gfortran are able to catch it at compile time. However, nvfortran compiles the code and seems to just ignore the call at run time.
Computational Chemistry
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.
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)
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.
duo: diatomic code for solving a fully coupled rovibronic Schroedinger equation, by Trovemaster
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.
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
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.
gibbs2: calculates pressure and temperature dependent thermodynamic properties of solids from ab initio results, by aoterodelaroza
HFB: Hartree-Fock-Bogolyubov code for (hyper)nuclear structure calculations (version by P. Vesely)
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.
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.
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.
numsa: solvent accessible surface area calculation, from grimme-lab
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.
pmflib: toolkit for Free Energy Calculations, by kulhanek
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
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
Computational Fluid Dynamics
2DEulerSolver: numerically solve the euler equations over a channel with a bump using jameson scheme finite volume analysis, by FrostyNip
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.
AerOpt: aerodynamic optimisation code based on control node parameterisation, by Ben Evans et al.
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.
CaNS: fast, massively-parallel direct numerical simulations (DNS) of canonical flows, by p-costa and nscapin
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
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
EOF: simulation of electro-osmotic flow by Lattice Boltzmann method, by parkeryang69
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
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 LBM: Lattice Boltzmann solver for fluid flows, by Mehdi Samiee
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.
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.
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
KatzPlotkin: Fortran programs provided by Joseph Katz and Allen Plotkin in their book Low-Speed Aerodynamics
lbm2d_opencl: D2Q9 BGK Lattice Boltzmann code written in OpenCL and Modern Fortran, by LKedward
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.
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.
MF-LBM: Portable, Scalable and High-performance Lattice Boltzmann Code for DNS of Flow in Porous Media, from LANL
Multi-component Flow Code (MFC): parallel simulation software for multi-component, multi-phase, and bubbly flows, by Spencer Bryngelson et al.
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.
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.
NTUSTCFDLAB: code for 3D flow using projection method with FVM, by HSUAN221. Navier Stokes equations are solved for velocity and pressure fields.
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
O2-Project: framework for CFD oriented scientific code development in Modern Fortran, by kgpolitis
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
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.
rdshellmodel: Rathmann and Ditlevsen (2016) helical shell model of turbulence (
shyfem: System of HydrodYnamic Finite Element Modules
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.
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.
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
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
Dates and Times
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
Earth Science
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.
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
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.
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
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,, 2019.
Calypso: performs magnetohydrodynamics (MHD) simulation in a rotating spherical shell, modeled as Boussinesq fluid driven by thermal or compositional buoyancy, by Hiro Matsui
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)
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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.
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.
GrowClust: program for the relative relocation of earthquake hypocenters based on waveform cross-correlation data, by dttrugman and sean0921
geoflac: code for lithospheric scale geodynamics, by Eh Tan et al.
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.
HOS-ocean: High-Order Spectral method for oceanic simulations, by gducrozet and Gjacquenot
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.
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"
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.
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.
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.
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.
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.
Maptran 3D: Modern Fortran 3D coordinate conversions for geospace ecef enu eci, from geospace-code. Similar to Python PyMap3D and Matlab Matmap3d.
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
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:
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.
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
NEMO-examples: simple configurations to study specific oceanic physical processes and be used as a tool for training
NM-CT_MATLAB: 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
omuse: Oceanographic MUltipurpose Software Environment is a package to conduct numerical experiments in oceanography and other Earth sciences.
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.
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.
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.
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.,, 2019.
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.
PSyclone: domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran, from stfc
PyGeopack: Wrapper for the geopack-08 Fortran code used for the Tsyganenko magnetic field models
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
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
rsl: maps the effects of rising sea levels on Great Britain, by Guymer
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
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
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.
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
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.
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.
SurfTomo: direct inversion of surface wave dispersion data, by caiweicaiwei
SUTRASET: extended USGS SUTRA 2.2 considering seepage(S), evaporation(E) and tide(T)
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.
Tenstream: approximately solves the radiative transfer equation in 3D and computes irradiance and heating rates from optical properties
Tomofast-x v.1.2: parallel inversion platform to run single domain or joint inversion (gravity and magnetic data), by V. Ogarko 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).
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.
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, 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
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
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,
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
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.
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.
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
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.
numx: High-Performance Library for Portfolio Optimization and Risk Analysis, by alpgodev
trendInflation: code for trend inflation model of Mertens (2016, REStat, and Garnier, Mertens and Nelson (2015, IJCB, The model implemented here is the variant with stochastic volatility in all inflation gaps.
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.
CCFatiguePlatform: web application to faciltate manipulation and harmonized storage of composite materials testing datasets, from EPFL-ENAC
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)
openfast: NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes
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.
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.
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
modern_fftpack: Fortran 2008 library of fast Fourier transforms -- an object-oriented modernization of NCAR's FFTPACK5.1., by jlokimlin
nufft: code for the 1D, 2D and 3D non-uniform FFTs, from biotrump
File I/O
cfgio: Fortran config file parser, by pkgpl
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
fcore: string handling and i/o routines, by jchristopherson
FiNeR: IO of INI (config) files for modern (2003+) Fortran projects, by szaghi and kostyfisik
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
json-fortran-benchmarks: benchmarks for JSON Fortran parsers, by jacobwilliams. Also comparison to Python. Discussed here
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.
hdf5-benchmark: benchmarking speed of HDF5 writes from MPI parallel workers, by scivision
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.
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
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
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.
serialbox: data serialization library and tools for C/C++ and Fortran, from GridTools
stl-fortran: Fortran STL (stereolithography) File I/O, by Jacob Williams
toml-f: TOML parser implementation for data serialization and deserialization in Fortran
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
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.
FrontISTR: Large-Scale Parallel FEM Program for Nonlinear Structural Analysis, by Naoki Morita et al.
HypFEM: enriched finite element solution space based numerical solver for initial-boundary value problems in hyperbolic linear PDEs, by md861
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
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.
PSyclone: domain-specific compiler for Finite Difference/Volume/Element Earth-system models in Fortran
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
Fortran Books and Tutorials
coarray-tutorial: short tutorial using gfortran, ifort, or NAG Fortran, by tkoenig1
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
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-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.
FORTRAN-Topics: codes to demonstrate Modern Fortran features, and codes for numerics and I/O, by Koushikphy
Intro-to-Fortran: materials for an online course by Chris Cooling
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: 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
OOP-Fortran-Examples: examples of using the object-oriented features in Fortran, taken from a presentation by Chris MacMackin at RSECon 2019
rocket-science: case study in modernizing legacy Fortran software, by Brad Richardson 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.
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
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
mastermind: classic MasterMind game in modern Fortran 2008, from fortran-gaming
General Purpose
AwesomeFortranLibraries: modules for numerics, file I/O, and other topics by Sourangshu Ghosh for use in more complex codes
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
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.
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.
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.
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.
fdict: native Fortran 90 dictionary with hash tables for retaining any data-type in a Python-like dictionary
ferror: library to assist with error handling in Fortran projects
fhash: hash table with support for generic keys and values, by LKedward
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
FIAT: Fortran Implementation of Abstract Types
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
forbear: progress bar environment by szaghi and jhykes
Fortran Equation Parser (feqparse): equation parser Fortran class that is used to interpret and evaluate functions provided as strings, by Joe Schoonover
Fortran exceptions library: provides exception handling for Fortran 2003 and later, based on the methodology of Poppe et al. 2012
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 General Library (FGL): code for bitstrings, exception handling, hash tables, lists, logging, queues, strings, sorting, JSON parsing, and other topics, from mobius-eng
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-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 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.
fortran-mongo: MongoDB binding library for Fortran, by dongli
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 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-sqlite3: Fortran 2018 interface bindings to SQLite 3, by interkosmos
Fortran Template Library (FTL): generic containers, versatile algorithms, easy string manipulation, and more
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-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.
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
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.
ftime: basic timing routines in Fortran 2003, by William C. Dawn
FTObjectLibrary: provides a collection of reference counted Fortran 2003 classes to facilitate writing generic object oriented Fortran programs
functional-fortran: library for functional programming in modern Fortran
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.
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
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
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
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.
M_calculator: parse Fortran-like double precision scalar expressions, 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_hashkeys: collection of hash key generator modules, by urbanjost
M_history: input line history editor, 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_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.
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
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.
qContainers: container library for Fortran language. It enables to store any internal Fortran data type and any derived data type to the container. It implements containers for key/value pairs: tree table and hash table, and containers for objects: list and vector.
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, by fortran-lang
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.
VectorClass: Fortran 2003 dynamic memory array that functions similarly (but not identically) to the C++ Vector class, by Tyler Chang
ZstdFortranLib: implements missing functionality such as error handling, strings manipulation, system/environment interface & testing utilities, by zbeekman
Graphics, Plotting, and User Interfaces
accis: plotting and graphics library by Ian Hutchinson. Related project: PLOTTRACES
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
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
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-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-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
gtk-fortran: cross-platform library to build Graphical User Interfaces (GUI), by vmagnin 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
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_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_escape: using in-band signaling wih ANSI control (escape) sequences to control terminal color from Fortran, by urbanjost and brocolis
M_ncurses: module that allows use of the C Ncurses library for controlling and formatting terminal displays, by urbanjost
ogpf: Object-Based Interface to GnuPlot from Fortran, by kookma
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.
pyplot-fortran: generate plots from Fortran using Python's matplotlib.pyplot, by jacobwilliams
RayTran: ray tracer in pure Fortran, by lewisfish
vtkmofo: VTK format using modern Fortran, by porteri
arrayfire-fortran: Fortran wrapper for ArrayFire, a general purpose GPU library.
dynload-julia: dynamically load Julia from Fortran, by brocolis
F2Py Sockets: example of how to use sockets to transfer data from Fortran to Python and viceversa, by Bernat Font
fckit: Fortran toolkit for interoperating Fortran with C/C++, from ecmwf
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-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.
forpy: use Python in Fortran and vice versa
FortCL: Fortran wrapper library providing OpenCL functionality, from stfc
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-lua53: Fortran 2008 interface bindings to Lua 5.3, from interkosmos
Fortran-RInside: demonstration of Fortran interface to Rinside, for calling R from Fortran, by ivan-pi
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 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
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
python-fortran: Python-Fortran bindings examples, by Pierre Navaro
statamod: provides read/write access for Stata datasets from within Fortran, by Andrew Shephard
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
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.
regridpack: routines for interpolating values between one-, two-, three-, and four-dimensional arrays defined on uniform or nonuniform orthogonal grids, from Jacob Williams
sosie: SOSIE is Only a Surface Interpolation Environment, by brodeau
sprint: Spherical Remapping and Interpolation library, from dongli
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 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
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
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
cyclic-banded-matrix: solves cyclic banded matrices, by mostlyharmlessone
DBCSR: Distributed Block Compressed Sparse Row matrix library, by cp2k
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
expokit: matrix exponential package
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
Fortran_Davidson: Modern Fortran implementation of the Davidson diagonalization algorithms, from NLESC-JCER
fortran_lsp: Fortran routines from "Solving Least Squares Problems" by C. Lawson and R. Hanson, with improved interfaces, from ivan-pi
GEVP-PDHGEQZ: parallel ScaLAPACK-style package of routines for solving nonsymmetric real generalized eigenvalue problems, from NLAFET
JACSD: utilities for the Jacobi-type (G/H)SVD algorithms and beyond, plus a Cosine-Sine Decomposition tester, by Vedran Novaković. Associated projects here
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
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
LUSOL: maintains LU factors of a square or rectangular sparse matrix. This repository provides LUSOL source code and a Matlab interface.
M_blas: Fortran BLAS library implemented as a free-format module, by urbanjost
M_LA: small collection of routines primarily associated with linear algebra, by urbanjost
mfi: modern Fortran Interfaces to BLAS and LAPACK, by 14NGiestas
minila: lightweight, standalone set of common linear algebraic operations for vectors and matrices, by Gabriel Brown
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
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
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
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.
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
sparse-fortran: sparse array examples using MUMPS, Scalapack, BLACS, PARDISO with CMake and Meson, from SciVision
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.
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.
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.
Materials Science
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.
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. Its main purpose is the simulation of crystal plasticity within a finite-strain continuum mechanical framework.
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
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
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.
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.
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.
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.
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
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.
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).
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.
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.
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.
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
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.
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.
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.
Neural Networks and Machine Learning
autofit: fit permutationally invariant polynomials (PIPs), by Auto-Mech
FKB: two-way deep learning bridge between Keras and Fortran, from scientific-computing
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
fortran_calls_tensorflow: how to calls a TensorFlow from Fortran 2003, by putschblos
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
gpf: small Fortran library for Gaussian process regression. It currently implements value predictions with dense Gaussian processes, and projected-process approximate Gaussian processes
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
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.
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.
util: machine learning, optimization, and data science utilities package, by tchlux
antia_numerical_methods: codes from "Numerical methods for scientists and engineers, 3rd ed." (2012), by H. M. Antia
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
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.
DATAPLOT: powerful and flexible program for performing scientific, engineering, statistical, mathematical, and graphical analysis, from usnistgov
faiNumber-Fortran: fast, flexible, and secure numerical library for Fortran with fast number parsing as one of its features
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.
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
FURY: Fortran Units (environment) for Reliable phYsical math, by Stefano Zaghi
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
Library of Numerical Analysis - Moscow State University: Translation of subroutines into modern Fortran (Fortran90 or higher) from Fortran 66. Original website:
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
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.
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.
NR_util: Fortran 2003 library by Lionel Guez containing basic mathematical constants and basic procedures for numerical tasks. NR_util originates from the "utility routines" of Numerical Recipes in Fortran 90 (Press et al., 1996, Cambridge University Press, appendix C1), version 2.10a, contained in files nrtype.f90 and nrutil.f90. These files of Numerical Recipes were put in the public domain by Press et al.
NumDiff: modern Fortran numerical differentiation library, by Jacob Williams
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
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: 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
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.
QD: double-double and quad-double package for Fortran and C++, by Michael Orlitzky and X. Sherry Li
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
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
SSP: Scientific Subroutine Package - Fortran science package for statistics, matrix calculus, and other mathematical areas
STEM-Fortran: modules and routines for math, science and engineering calculations, by roh6608
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.
Numerical Integration (Quadrature)
FORbID: object-oriented Fortran 2008 library for numerical integration of definite integrals, by Giacomo Rossi and Stefano Zaghi
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).
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
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
ddeabm: modern object-oriented Fortran implementation of the DDEABM Adams-Bashforth-Moulton ODE solver, by Jacob Williams and web-flow
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).
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.
generic_rk: modularize solvers for ordinary differential equations (ODEs) in Fortran, by cbcoutinho
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
rksuite: Runge-Kutta methods for the numerical solution of the initial value problem for a first order system of ordinary differential equations
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.
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
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
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
GALAHAD: library of modern Fortran modules for nonlinear optimization
hyperBOB: Optimization using MPI parallel Latin hypercube sampling and BOBYQA, by maxEntropyProd
lbfgs: L-BFGS Software for Large-scale Unconstrained Optimization by Jorge Nocedal
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"
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
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
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
osqp-fortran: Fortran wrapper for OSQP: the Operator Splitting QP Solver
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.
PowellOpt: collection of derivative-free optimization algorithms by M.J.D. Powell.
pso: particle swarm optimization in Fortran, by Konrad1991
PYthon OPTimization Framework (pyOpt): object-oriented framework for formulating and solving nonlinear constrained optimization problems, calling Fortran codes
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.
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)
Parallel Programming
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 the CSC course "Advanced Parallel Programming". Other CSC courses are Elements of high-performance computing and Parallel Programming with MPI
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
clfortran: Fortran interface to Khronos OpenCL API, from cass-support
coarray-examples: simple coarray examples for teaching, by ljdursi
Coarray Fortran Intel Tutorial: examples from Intel Fortran coarray tutorial
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
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
f77_zmq: Fortran 77 binding library for ZeroMQ, an open-source universal messaging library, by Anthony Scemama et al.
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 LKedward
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
GPU programming with OpenMP offloading: exercises and other material for course, by Jussi Enkovaara et al.
gpu-tips: Fortran examples of CUDA and directives tips and tricks for IBM Power + Nvidia Systems, by dappelha
Hybrid CPU programming with OpenMP and MPI: exercise material and model answers for the CSC course, by Jussi Enkovaara and Martti Louhivuori
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.
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.
NVIDIA OpenACC Course Sources and Labs: contains sources related to the lectures and labs for the NVIDIA OpenACC course.
OpenCoarrays: parallel application binary interface for Fortran 2018 compilers, from sourceryinstitute
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.
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.
Partial Differential Equations
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
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.
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.
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.
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
darkmatter: experimental WIMP Analysis, by ogorton
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.
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.
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
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.
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
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).
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.
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
Computational Environment for Nuclear Structure (CENS): many-body codes developed by Morten Hjorth-Jensen and collaborators
computational_physics: computational physics projects by alexbaekey
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.
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.
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
EDIPIC-2D: 2D version of EDIPIC, a particle-in-cell code developed for low temperature plasma applications, by Dmytro Sydorenko et al..
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.
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.
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
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.
Guided_Missile_Simulation: Air-to-Air Missile Simulation written in modern Fortran, by bgin
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.
kmos: kMC on steroids: A vigorous attempt to make lattice kinetic Monte Carlo modelling easier, by mhoffman et al.
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).
KORC: Kinetic Orbit Runaway Code, from ORNL-Fusion
MagTense: magnetostatic and a micromagnetism calculation framework, in Fortran with Matlab MEX and Python interfaces, by Kaspar Kirstein Nielsen et al.
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.
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.
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.
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.
Quantum Annealing Machine Emulator: quantum annealing simulation on SpinGlass model using Path Integral Monte Carlo method, by Tomoya Tanaka
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).
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.
SCENE: tokamak equilibrium solver which can generate equilibria in a variety of file formats, from PlasmaFAIR
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
ShengBTE: solver for the Boltzmann transport equation for phonons, by Wu Li et al.
Slave Spins: flexible slave spins mean-field code, with support for multi-band structure and inequivalent sites, from QcmPlab. This code uses MPI for faster execution.
SNAP: proxy application to model the performance of a modern discrete ordinates neutral particle transport application, from LANL
SPECTRA-PKA: calculates the expected primary knock-on atom (PKA) spectra for a given target nuclide under neutron or charged particle irradiation, by Mark Gilbert and Michael Fleming. NJOY-processed recoil matrices must be provided as the input nuclear data for each nuclide and reaction channel of interest.
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.
streamer_1d: 1D discharge simulations with a particle-in-cell or fluid model, by Jannis Teunissen
Symplectic Integration Methods for Particle Loss Estimation (SIMPLE): computes statistical losses of guiding-center orbits for particles of given mass, charge and energy from the volume of 3D magnetic configurations, by Christopher Albert et al. Orbits are traced via a symplectic integrator that guarantees conservation of invariants of motion within fixed bounds over long integration periods.
tbcode: simulate the effects of impurities embedded in or adsorbed on superconducting hosts, by srigas
Themis: statistical mechanics software designed to obtain the association thermodynamics of two structures (ions, molecules, crystals, nanoparticles, etc), by colombarifm. It generates a configurational partition function by systematically sampling the phase space using discrete grids to perform translations and rotations of one structure around another.
thermopack: thermodynamic model library for fluid properties and PVT calculations, from SINTEF
TIme-dependent Transport and Angular momentum of Nanostructures (TITAN): calculates the electric and spin excitations for bulk and thin films, by JRSuckert and filipesmg. It can describe Ferromagnetic Resonance (FMR) experiments and intrinsic Spin and Orbital Momentum Hall Effects (including Anomalous and Planar Hall effects), for example.
turbogap: efficiently and accurately builds many-body atomic descriptors and carry out other related computations employed in machine-learning approaches to atomistic modeling, such as to run molecular dynamics simulations, by mcaroba
VASPBERRY: Berry curvature and Chern number calculations with the output (WAVECAR) of VASP code, by Hyun-Jung Kim. VASPBERRY is written for the post-processing purpose of the VASP outputs, i.e., WAVECAR the Bloch wavefunction information.
VicsekSimulation: Fortran & Python based simulation of a self-propelled particles system
WannierTools: package for novel topological materials, by QuanSheng Wu et al.
Quantum Chemistry and Electronic Structure
abinit: atomic-scale simulation software suite
Abinitio DGA: implementation of a DGA approach for electronic structure calculations of materials, by Matthias Pickem. It allows the inclusion of non-local correlations beyond DMFT and the calculation of momentum-dependent susceptibilities.
atomistica: library of interatomic potentials, including empirical potentials and non-orthogonal tight-binding. It is designed to be plugged into different simulation environments.
bands4vasp: post processing package for the analysis of unfolded eigenstates in VASP, and much more: band structures, 2D and 3D Fermi surfaces, Fermi vectors and spectral functions, by David Dirnberger and Michele Reticcioli
bandup: Band Unfolding code for Plane-wave based calculations
cp2k: quantum chemistry and solid state physics software package that can perform atomistic simulations of solid state, liquid, molecular, periodic, material, crystal, and biological systems
dftbplus: DFTB+ general package for performing fast atomistic simulations
dftd4: Generally Applicable Atomic-Charge Dependent London Dispersion Correction
DyNaMol: simulation package for the simulation of magnetic materials developed at the French Alternative Energies and Atomic Energy Commission. DyNaMol is designed to provide a community standard tool for ab initio simulations of magnetic materials with high performance and an easy-to-use interface.
ecalj — a package for the first-principles electronic structure calculations: quasiparticle self-consistent GW method in the PMT method (LAPW+LMTO+Lo), by tkotani and nim-hrkn
EDIpack: Lanczos-based solver for generic quantum impurity models exploiting distributed memory MPI parallelisation, from QcmPlab
ELectronic Structure Infrastructure (elsi): provides and enhances scalable, open-source software library solutions for electronic structure calculations in materials science, condensed matter physics, chemistry, and many other fields. ELSI focuses on methods that solve or circumvent eigenvalue problems in electronic structure theory. The ELSI infrastructure should also be useful for other challenging eigenvalue problems.
EMPM_MPI: codes for TDA, 2 and 3 -phonon diagonalization of nuclear Hamiltonian within Equation-of-motion Phonon Method, by knappf
EMPM_MPI_NO: codes for TDA, 2 and 3 -phonon diagonalization of nuclear Hamiltonian within Equation-of-motion Phonon Method, by knappf. Natural orbital basis version.
exciting: all-electron full-potential computer package for first-principles calculations, based on (linearized) augmented planewave + local orbital [(L)APW+lo] methods, by Stephan Sagmeister. This family of basis sets is known as the most precise numerical scheme to solve the Kohn-Sham equations of density-functional theory (DFT), reaching up to micro-Hartree precision.
feff10: ab initio multiple-scattering code for calculations of excitation spectra and electronic structure, from times-software. It is based on a real space Green's function approach that includes a screened core-hole, inelastic losses and self-energy shifts, and Debye-Waller factors.
ffr-PWDFT: poor man's program in simple Fortran 90 to carry out electronic structure calculations based on plane wave basis set and pseudopotential, by Fadjar Fathurrahman
ffr-LFDFT: solves electronic structure problems based on density functional theory (DFT) and Kohn-Sham equations using Lagrange basis functions, by Fadjar Fathurrahman
FLOSIC2020: performs self-interaction corrected (SIC) density functional approximation calculations, by Duyen Nguyen et al. Fermi Löwdin orbital implementation of Perdew-Zunger SIC scheme is used in the software.
H2-PolarizabilityMatrixElements: Fortran and Python code associated with paper "Polarizability tensor invariants of H2, HD, and D2", by Raj, A., Hamaguchi, H., and Witek, H. A., Journal of Chemical Physics 148, 104308 (2018)
HANDE: efficient, highly parallel code for stochastic quantum chemistry. It can be used both as a standalone program or (optionally) as a library from an existing quantum chemistry code.
hfsolver: Hartree Fock solver by certik
Interacting Quantum Impurity Solver Toolkit (iQIST): package for studying strongly correlated electron systems, by huangli712 et al. It contains several hybridization expansion continuous-time quantum Monte Carlo impurity solvers and some auxiliary scripts.
LBNL-AMO-MCTDHF: suite of codes for Multiconfiguration Time-Dependent Hartree-Fock applied to ultrafast laser dynamics of atoms and molecules. It calculates nonadiabatic electronic and nuclear wave functions for the nonrelativistic Schrödinger equation.
Merced Quantum Chemistry Package (mqcPack): objects and procedures to streamline develoments of quantum chemical methodologies, by Lee M. Thompson et al. MQC is built using object-orientated Fortran
molgw: accurate many-body perturbation theory calculations of the electronic structure of molecules, by bruneval
MuST: Multiple Scattering Theory code for first principles calculations, from mstsuite. Ab initio electronic structure calculation software package, with petascale and beyond computing capability, for the first principles study of quantum phenomena in disordered materials.
NECI: implements the Full Configuration Interaction Quantum Monte Carlo (FCIQMC) algorithm, a method based on a stochastic application of the Hamiltonian matrix on a sparse sampling of the wave function. The program utilizes a very powerful parallelization and scales efficiently to more than 24 000 central processing unit cores.
NWChem: Open Source High-Performance Computational Chemistry
Object Oriented GRASP: general relativistic atomic structure software organized as the processing of objects that is both more readable and manages memory more efficiently, by Charlotte Fischer. Written in Fortran 2008 or later, it relies extensively on parameterized user-defined data types for defining objects and linked lists for managing memory of lists whose size cannot be determined in advance.
omm-bundle: library implementing the orbital minimization method for solving the Kohn-Sham equation as a generalized eigenvalue problem, by Fabiano Corsetti et al.
OpenMolcas: quantum chemistry software package developed by scientists and intended to be used by scientists. It includes programs to apply many different electronic structure methods to chemical systems, but its key feature is the multiconfigurational approach, with methods like CASSCF and CASPT2.
Optados: calculates core-electron and low-loss electron energy loss spectra (EELS) and optical spectra along with total-, projected- and joint-density of electronic states (DOS) from single-particle eigenenergies and dipole transition coefficients.
PROGRESS: Parallel, Rapid O(N) and Graph-based Recursive Electronic Structure Solver, from lanl
qc2-teaching: resources used for teaching the course quantum chemistry 2 (WP4) at the university of Bonn, including Fortran and Linux tutorials, from grimme-lab
q-e: Quantum ESPRESSO suite of codes (ESPRESSO: opEn-Source Package for Research in Electronic Structure, Simulation, and Optimization)
qe-gipaw: GIPAW code for Quantum-Espresso, by dceresoli
qe-gpu: GPU-accelerated Quantum ESPRESSO using CUDA Fortran, by fspiga
QuantumModelLib: enables one to use potentials extracted from the literature, by David Lauvergnat et al. It has the following features: one or several degrees of freedom; one or several electronic states; for each electronic state, the energy, gradient and hessian can be obtained in the diabatic or adiabatic representations
Quantum Package 2.2: programming environment for quantum chemistry specially designed for wave function methods. Its main goal is the development of determinant-driven selected configuration interaction (sCI) methods and multi-reference second-order perturbation theory (PT2).
QuAcK: performs i) various types of GW calculations (G0W0, evGW, qsGW, etc). ii) ensemble DFT calculations (under progress). QuAcK also include a very slow integral package called IntPak which does compute many types of different integrals. By pfloos.
RUQT: performs Landauer NEGF calculations using advanced electronic structure methods particularly parametric 2-RDM (NEGF-RDM) and multi-configuration pair density functional theory (NEGF-PDFT), from HoyLab-Rowan
smash: Massively parallel software for quantum chemistry calculations, from cmsi
soap_turbo: code associated with paper Miguel A. Caro. "Optimizing many-body atomic descriptors for enhanced computational performance of machine learning based interatomic potentials". Phys. Rev. B 100, 024112 (2019).
SPHF: B-spline version of a Hartree-Fock program, by Charlotte Fischer
STB: Simple Tight-binding, by MRedies
Tight-binding parameter FITting package (TBFIT) for Slater-Koster method: program for numerical tight-binding parameter fitting mainly based on Slater-Koster scheme and tight-binding calculations for the electronic band structures of given atomic and electronic configurations with a simple input interfaces, by Hyun-Jung Kim. Basically TBFIT fits Slater-Koster parameters including scaling factors to your target first-principles band structure.
wannier90: Maximally-Localised Generalised Wannier Functions Code
WFNSYM: calculates continuous symmetry measures (CSM) of the electronic wave function of molecules, by Abel Carreras and ‪Efrem Bernuz
Yet Another Many-Body cOde (YAMBO): implements Many-Body Perturbation Theory (MBPT) methods (such as GW and BSE) and Time-Dependent Density Functional Theory (TDDFT), which allows for accurate prediction of fundamental properties as band gaps of semiconductors, band alignments, defect quasi-particle energies, optics and out-of-equilibrium properties of materials, by Davide Sangalli et al.
Zen: modern DFT + DMFT (namely, density functional theory plus dynamical mean-field theory) computation framework, by huangli712
Random Number Generation
LEcuyer-RNG-Fortran90: pseudo-random number generator, more precisely, a combined multiple recursive generator (CMRG), MRG32k3a, proposed by L'Ecuyer "Good parameters and implementations for combined multiple recursive random number generators". Operations Research. 1999 Feb;47(1):159-64, by p-serna. This algorithm is well suited for parallel computing as it can initialize many long streams and substreams, with a total period length of 2191 and it passes diehard tests.
pseudo_RNG_modules: pseudo-random number generator modules in Fortran, with option to compile as Python modules and some basic randomness tests in Python, from pointedsphere
randomField: generation of random fields with prescribed first-order marginal distribution and correlation structure over structured grids or non-structured point arrays, by cottereau
rng_fortran: generates random integers, uniform, normal, and Poisson variates, and random points on a circle or sphere, by jannisteunissen
Reactor Physics
Ground Source Cooled Reactor (GSCR): code from Kim, Lance K., Rainer Jungwirth, Guido Renda, Erik Wolfart, and Giacomo G. M. Cojazzi. “Potential Signatures and the Means of Detecting a Hypothetical Ground Source Cooled Nuclear Reactor.” Science & Global Security 24, no. 2 (2016): 92–113.
KOMODO: nuclear reactor simulator that solves both static and transient neutron diffusion equation for one, two or three dimensional reactor problems in Cartesian geometry, from imronuke. Currently, by default, KOMODO uses Semi-Analytic Nodal Method (SANM) to spatially discretise the neutron diffusion equation.
NJOY2016: modular computer code designed to read evaluated data in ENDF format, transform the data in various ways, and output the results as libraries designed to be used in various applications. Each module performs a well defined processing task.
PointKinetics: point-kinetics calculation of the nuclear reactor cores, by KarolLuszczek
ReactorHeatTransfer: time-dependent heat transfer Fortran code used to model a 4 loop Westinghouse PWR primary coolant loop, by rwalden1993
trimon: 3D Monte Carlo Code for TRIGA Mk-II Reactor Core Calculation, by rabieomar92
Fortran-parallel-sort: Fortran library to perform parallel sorts, by cphyc and OCsteve
fortran-search-and-sort: Searching and sorting with modern Fortran, by Jacob Williams
M_sort: collection of Fortran procedures that do simple sorts, by urbanjost
stringsort: sorting routines for strings, by Jacob Williams
200+ R packages with Fortran code: R is a free software environment for statistical computing and graphics
Adaptive Mixture ICA (AMICA) with shared components: code associated with paper "AMICA: An Adaptive Mixture of Independent Component Analyzers with Shared Components" Jason A. Palmer, Ken Kreutz-Delgado, and Scott Makeig
amber: evaluate multivariate Bernstein polynomials for multivariate polynomial regression using de Casteljau's algorithm, by R. Quast
asurv: suite of statistical methods for the analysis of censored data; i.e. data which are known to lie above or below some limit, by rsnemmen
Bayesian Inference for Factor Modeling (BayesFM): R package with a collection of procedures to perform Bayesian analysis on a variety of factor models, calling Fortran 2003 code, by Rémi Piatek. It includes random number generators for uniform and non-uniform distributions.
bayesR: Bayesian hierarchical model for complex trait analysis, associated with paper "Simultaneous Discovery, Estimation and Prediction Analysis of Complex Traits Using a Bayesian Mixture Model", by Gerhard Moser et al.
BayesRCO: complex trait prediction with Bayesian hierarchical models using genome-wide genetic variation grouped into potentially overlapping annotation categories based on prior biological information (e.g., functional annotations, candidate gene lists, known causal variants), by Fanny Mollandin and Andrea Rau.
BMSL: mathematical and statistical libraries, geared toward environmental / hydrological applications, by Ben Renard.
cdaSQR: generalized coordinate descent (GCD) algorithm for computing the solution path of the penalized quantile regression, by KarimOualkacha
curvefit: library for fitting functions to sets of data, by jchristopherson
em-fortranbox: econometrics modules by Elmar Mertens
Ensemble Data Assimilation Modules (EnsDAM): modules that can be useful to ensemble data assimilation systems, by Jean-Michel Brankart. Includes code to compute and update statisics, locate and interpolate points, and sample from uniform and nonuniform distirubtions.
ferre: matches models to data, taking a set of observations and identifying the model parameters that best reproduce the data, in a chi-squared sense, by callendeprieto and holtzmanjon
Functional Single Index Model (FSIM): codes for simulations and real data analysis, which appears in the manscript entitled, "Functional Single Index Model" by Jiang, F., Baek, S., Cao, J., and Ma, Y.
fortran-gmm-EM: extremely efficient implementation of the expectation maximization (EM) algorithm for Gaussian mixtures in Fortran, by Jonas-Finkler
gslib2.0: Geostatistical Software Library: aims to create a modern version of the original GSLIB source code, by exepulveda
inference: Python modules for statistical inference, including the Parametric Inference Engine (PIE), with underlying Fortran code, by Tom Loredo
KronLinInv: Kronecker-product-based linear inversion of geophysical (or other kinds of) data under Gaussian and separability assumptions. The code computes the posterior mean model and the posterior covariance matrix (or subsets of it) in an efficient manner (parallel algorithm) taking into account 3-D correlations both in the model parameters and in the observed data.
libdierckx: collection of FORTRAN programs for curve and surface fitting with splines and tensor product splines. Features included are automatic knot selection, error smoothing and data reduction.
MCMC f90 library: do Markov chain Monte Carlo simulation from a posterior distribution of unknown model parameters defined by a likelihood function and prior, by mjlaine
measurements: routines supporting calculations related to measurement activities, in the following areas: statistics, linear regression, data smoothing, filtering, Fourier transforms, peak detection, interpolation, differentiation, and integration, by jchristopherson
MultiNest: Bayesian inference tool which calculates the evidence and explores the parameter space which may contain multiple posterior modes and pronounced (curving) degeneracies in moderately high dimensions, by Farhan Feroz and Mike Hobson
ParaMonte: Plain Powerful Parallel Monte Carlo and MCMC Library for Python, MATLAB, Fortran, C++, C, from cdslaborg
PolyChordLite: public version of PolyChord, next generation data technology which has the ability to more fully explore a complex, challenging data landscape
RegressionPooledDilution: R and FORTRAN programs associated with the article, “Group testing regression models with dilution submodels”, by mswarasi
Regression via Nonsmooth Optimization: optimization based regression algorithms introduced by Sona Taheri and co-authors
sampleSTAT: command-line application to determine sampling distributions, by Hani Andreas Ibrahim. It goes a lot further than arithmetic mean and standard deviation.
SLICE: efficient N-Dimensional Monte Carlo inversion algorithm, by ericlindsey
SparseReg: Matlab toolbox for sparse regression calling Fortran code, by Hua-Zhou Hua Zhou and Brian Gaines
Spatial Locally Weighted Regression: enhancements to the loess implementation that comes with base R, by XiaosuTong. Most of computation in FORTRAN are kept as same in loess function except the distance calculation.
statTools: command-line tools for simple statistics, by AstroFloyd
System of Sequential Assimilation Modules (sesam): perform the various basic operations that are required in sequential data assimilation systems. These operations include square root or ensemble observational updates (with global or local parameterization of the forecast error statistics), adaptive statistical parameterizations, anamorphosis transformations, or the computation of truncated Gaussian estimators.
treat: tail-regression estimator analysis toolbox to analyze samples distributed according to heavy-tailed distributions of known tail indices, by plopezrios
fortran202x_split: Fortran implementation of the Fortran 202X split intrinsic subroutine, by milancurcic and awvwgk
fortran_pcre: Fortran wrapper around the C PCRE regular expression library
fortran-pcre2: Fortran 2018 ISO_C_BINDING interfaces to Perl-compatible Regular Expressions 2 (PCRE2), by interkosmos
fortran-strings: library and module which contains functions for common string manipulations, by eengl
Fortran-String-to-Real: converts strings to reals without using an internal read, by Carltoffel
M_io: collection of procedures that create a simple interface for common I/O tasks not conveniently done with intrinsic I/O procedures, by urbanjost
M_match: basic implementation in Fortran of a subset of regular expressions as described in "Software Tools" by Kernighan and Plauger, 1976.
M_strings: modules for processing strings. Routines for parsing, tokenizing, changing case, substituting new strings for substrings, locating strings with simple wildcard expressions, removing tabs and line terminators and other string manipulations are included
StringiFor: Strings Fortran Manipulator with steroids, by szaghi
Time Series
ACFbyFFT: evaluates the auto(cross)-correlation of data in one or more columns of a file, by using the fftw 3.1.2 libraries, by lingtikong
BVARmml: variable selection in Bayesian VAR models via marginalization of marginal likelihood, by dingshutong
fortsa: univariate time series analysis and ARIMA modeling package, by zoziha
fortress: tools for Bayesian estimation of time series models, by eph
Gaussian Mixture ARMA-GARCH: implements a Gaussian Mixture ARMA-GARCH model to fit a generic time series with zero mean and gaussian distributed standard deviations, by saveriocolla90
KFAS: R Package for Exponential Family State Space Models: provides tools for modelling exponential family state space models such as structural time series, ARIMA models, generalized linear models and generalized linear mixed models, by Jouni Helske et al., with underlying Fortran 95 code
REDFIT-X: cross-spectral analysis of unevenly spaced paleoclimate time series, by kristinbjorg et al.
setpar: code by wan9c9 related to the paper "Self-excited Threshold Poisson Autoregression Model"
SIGNAL: frequency estimation, quasiperiodic decomposition and chaos indicators, by i-a-morozov
tidybench: TIme series DiscoverY has four algorithms for causal structure learning for time series: SLARAC (Subsampled Linear Auto-Regression Absolute Coefficients), QRBS (Quantiles of Ridge regressed Bootstrap Samples), LASAR (LASso Auto-Regression), and SELVAR (Selective auto-regressive model), by sweichwald
Timeslab: Fortran 77 time series package by H. Joseph Newton to accompany his book "Timeslab: A Time Series Analysis Laboratory" (1988)
Tisean: analysis of time series with methods based on the theory of nonlinear deterministic dynamical systems, or chaos theory, by Rainer Hegger et al.
TOMS Algorithm 675: subroutines for computing the square root covariance filter and square root information filter in dense or Hessenberg forms, by ivan-pi
wavelets: Torrence & Compo Wavelet Analysis Software
Consolidated Fire and Smoke Transport (CFAST): two-zone fire model that predicts the thermal environment caused by a fire within a compartmented structure, from firemodels
DAGLIB: modern Fortran module for creating and manipulating directed acyclic graphs (DAGs), by Jacob Williams and Damian Rouson. It includes a toposort feature, and also the ability to generate files in the GraphViz "dot" notation.
fds: Fire Dynamics Simulator (FDS) is a large-eddy simulation (LES) code for low-speed flows, from firemodels, with an emphasis on smoke and heat transport from fires.
Fortran---CGAL-polyhedra: bindings to the CGAL library to query to find whether a point is inside of a polyhedron and their distance, by Vladimír Fuka
DistTab: library being developed for use with combustion codes that use spray flame lookup tables, by NickAbel
Unit Testing
fortran-testanything: test library supporting the Test Anything Protocol (TAP) inspired by Perl's Test::More module, by dennisdjensen
fortran-unit-test: unit test library in Fortran to encourage scientific programmer to write tests, by dongli
Fortran_UnitTest: unit test library based on OOP, by zhenkunl. It is strongly inspired by Zofu, and its output format is derived from fortran-unit-test.
Fortran Unit Test Library: pure Fortran library using Object-Oriented Programming (OOP), by zhenkunl. It is strongly inspired by Zofu, and its output format is derived from fortran-unit-test.
FyTest — Instant Fortran unit testing: lightweight unit testing framework for Fortran, by Bálint Aradi. Thanks to its header-only design, it can be easily bundled with any Fortran project without creating extra dependencies.
pFUnit: unit testing framework enabling JUnit-like testing of serial and MPI-parallel software written in Fortran, from Goddard-Fortran-Ecosystem. Limited support for OpenMP is also provided in the form of managing exceptions in a thread-safe manner.
tap: minimal producer implementation of the "Test Anything Protocol" (TAP) in Fortran 90, from gzahl
test-drive: lightweight, procedural unit testing framework based on nothing but standard Fortran, by awvwgk. Integration with meson, cmake and Fortran package manager (fpm) is available.
Web Programming
Fortran + Apache + BSD + sqlite (FABS): web framework that leverages Fortran for the middle-tier, by bceverly. The client is a standard HTML5/CSS3/Javascript that talks to a REST API that is exposed by the Fotran middle-tier code via an Apache content filter using CGI.
fortran-machine: MVC web stack written in Fortran 90, by Nick Doiron et al.
fox: XML library by andreww et al.
FoXy: XML parser, from Fortran-FOSS-Programmers
xml-fortran: parser for XML-files by paulromano, based on Arjen Markus' project
xmlf90: XML Fortran 90 Library by rscircus et al.

若使用VASPKIT软件请引用文献 Computer Physics Communications 267, 108033, (2021) ,您的支持是对我们付出的最大肯定。
VASPKIT英文网址, 中文网址, 中文论坛, QQ学术交流群:331895604和498683602, 微信公众号:VASPKIT

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册


QQ|Archiver|手机版|小黑屋|VASPKIT论坛 ( 陕ICP备2020017291号 )

GMT+8, 2023-6-9 09:10 , Processed in 0.118625 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表