formidi: small Fortran MIDI sequencer for composing music and exploring algorithmic music, by Vincent Magnin
forsynth: small Fortran synthesizer to explore sound synthesis, sound effects, electronic music, algorithmic music, etc, by Vincent Magnin
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).
aquila astrophotography package: small LRGB astrophotography reduction and processing package, by Dominik Gronkiewicz. The package consists of the programs aqstack for stacking and reduction of monochromatic CCD images and aqlrgb for compositing images from many filters into one color picture.
astro-fortran: modern Fortran implementations of standard models used in fundamental astronomy, by Jacob Williams. It is a refactoring of IAU SOFA.
Fortran-Astrodynamics-Toolkit: aims to be a comprehensive library, written in modern Fortran (Fortran 2003/2008), of all the standard orbital mechanics algorithms, by Jacob Williams
fortranMR: library for reading output files generated by MESA (Modules for Experiments in Stellar Astrophysics), by Joshua Aiken. It extends fortranDF to read in files as a data frame.
halo: orbit solver that can be used to generate long-duration Earth-Moon halo orbits in the ephemeris model. Reference: J. Williams et al., Targeting Cislunar Near Rectilinear Halo Orbits for Human Space Exploration, 27th AAS/AIAA Space Flight Mechanics Meeting, 2017
img2nc: converts planetary Digital Elevation Model (DEM) data into NetCDF, allowing one to draw a topographic map of the Moon, by ShinobuAmasaki.
Molecular atmospheric Absorption with Rapid and Flexible Analysis (MARFA): tool designed to calculate volume absorption coefficients or monochromatic absorption cross-sections using initial spectroscopic data from spectral databases and atmospheric data from an external file, by Mikhail Razumovskiy
Naval Observatory Vector Astrometry Software (NOVAS): integrated package of routines for computing various commonly needed quantities in positional astronomy, refactored by Jacob Williams. The package can provide, in one or two subroutine or function calls, the instantaneous coordinates of any star or planet in a variety of coordinate systems.
radbelt: AE-8/AP-8 Van Allen belt model, describing the differential or integral, omnidirectional fluxes of electrons (AE-8) and protons (AP-8) in the inner and outer radiation belts, by Jacob Williams
AD_dnSVM: Fortran Automatic Differentiation tool using forward mode for scalars (S), Vectors (V) and Matrices (M), by David Lauvergnat. It has no limit in terms of the number of independent variables (this number is defined at runtime) and can compute up to third derivatives.
Auto-Diff: implementation in Modern Fortran of backward mode automatic differentiation, by zoziha
forwarddiff: allows for the computation for derivatives, gradients and Jacobians of Fortran subroutines or functions using forward mode automatic differentiation (AD), by Nicholas Wogan, inspired by DNAD and ForwardDiff.jl
Benchmark.f: KISS library for benchmarking functions and subroutines with precision, by David Pfister
ForBenchmark: a Fortran library for benchmarking (with support for coarrays). There are dot_product benchmark results, by Seyed Ali Ghasemi
mandelbrot-f: Mandelbrot benchmark in Fortran by Jesper Olsen, who also has versions in Rust, Erlang, and Mojo
Motility Analysis of T-Cell Histories in Activation (MATCHA): designs virtual T cells that move like biological T cells, from BerkeleyLab and Northern New Mexico College. The virtual T cells will match the speed and turning angle distributions of biological cells.
PrecisionSpec-Analyzer, a high-precision tool for atmospheric absorption calculations over narrow spectral ranges, focusing on detailed spectroscopic analysis using HITRAN and HITEMP data with standard and custom line shapes for terrestrial atmospheric studies, by Mikhail Razumovskiy
exception_handling: tools for exception handling and tracing, by Sebastian Tillack
flavanaly: wrapper for Fortran-stdlib logger that enhances log messages with purpose classification and message categorization, by Tomohiro Degawa
Fortran Debug Utilities: collection of some utilities useful for debugging code, by Pål Levold
fortran-git: Fortran 2008 ISO C binding interfaces to libgit2, by interkosmos
fpm-search: finds information about registered fpm (Fortran Package Manager) packages, by urbanjost
prep: streamlined pre-processor primarily designed for use with Fortran, by urbanjost. It does not support procedural macros but does support variable substitution and reusable free-format text blocks which allows for basic templating as well as easy construction of multi-line CHARACTER variables; and is quite capable of supporting traditional conditional compilation.
progress-bar: simple progress bar module that is typically used to display the time integration process, by zoziha
symengine.f90: Fortran wrappers by Rikard Nordgren and Ondřej Čertík of SymEngine, a fast symbolic manipulation library, written in C++
to_f90: Alan Miller’s tool for converting Fortran 77 code to free-form Fortran 90 code, from jbdv-no
urclfortran: work-in-progress Fortran compiler written in modern fortran, currently targeting 16 bit URCL, by Verlio-H. Also urcl-ld to link URCL files.
version-f: implementation of Semantic Versioning 2.0.0 by Minh Dao that aims to be a user-friendly tool for handling versions in Fortran projects.
ciaaw: library providing the standard and abridged atomic weights, the isotopic abundance and the isotopes’ standard atomic weights, by Milan Skocic. It also provides a API for the C language.
ecx: library providing formulas for electrochemistry with a C API, by Milan Skocic
fenvelopes: calculate phases boundaries of multicomponent systems using Equations of State, currently supporting PT envelopes and PX envelopes with partial three-phase-behaviour, by Federico E. Benelli
forsus: provides a simple API to read json files containing pure component information, which can be used in other projects, by José Antonio Scilipoti
GWMlib: Generic Water isotope Modelling Library, by Didier M. Roche
International Association for the Properties of Water and Steam (iapws): library providing the formulas for computing light and heavy water properties, by Milan Skocic, with interfaces to C and (in pyiapws) Python
kanon: program to compute chirality indices and assess molecular symmetry, by Asdrubal Lozada-Blanco
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.
mstore: molecular structure store for testing, from grimme-lab
numsa: solvent accessible surface area calculation, from grimme-lab
pbepack: package to solve population balance equations for particulate processes, associated with the paper Solution of the Population Balance Equation for Two-Component Aggregation by an Extended Fixed Pivot Technique, by Hugo M. Vale and Timothy F. McKenna, Industrial & Engineering Chemistry Research (2005)
rate: code for fitting and predicting chemical kinetic data, by Andrew L. Cooksy
YA_EoS: thermodynamic equations of state library with both automatic and analytical derivation capabilities, by Federico E. Benelli
any: user-defined type for mimicking procedures that can return different types, by Tomohiro Degawa
array_range: provides user-defined types array_range{1 | 2 | 3}d_type to improve the manipulation of bounds of Fortran arrays, by Tomohiro Degawa |
collections: set of types supporting collections in Fortran, by Jason Christopherson. Currently, the library contains a generic, dynamically sizable list and a generic linked-list type.
enhanced-allocatables: proposal to extend allocatable arrays to be dynamically reallocatable/resizable, with an implementation that calls C++, by PierUgit
for_fifo_queue: dense linked fifo queue, by jordan4ibanez. It is dense because it allows unlimited polymorphism in the queue without using additional indirection.
Fortran_competitive_library: library for solving AtCoder problems, implementing a binary indexed tree, hash table, linked list, tuples, and merge and selection sort
enumul: incomplete typed enumerator emulator for Fortran, by Tomohiro Degawa
fhash: hash table with support for generic keys and values, by Laurence Kedward
flinkedlist: object-oriented library providing an simple linked list, with the ability to sort elements with a user-defined function, apply a user-defined function in each node, and a convenience method to aid print debugging by automatically displaying variables of built-in types and providing a dedicated display function for user-defined types, by Yuichiro Sakamoto
flist: modern Fortran linked lists using unlimited polymorphic derived types, by Jacob Williams
fortranDF: data frame that can have columns of different types, by Joshua Aiken
fortran_vector: bindings to c-vector by jordan4ibanez. C-vector is a dynamic array implementation in C similar to the one found in standard C++.
fortran_vector: derived type for vector of integers, with procedures init
, append
, size
, pop
, remove
, delete
, unique
, sort
, cut
, and clear
, by Euler-37
hashmap_f90: bindings to hashmap.c, by jordan4ibanez
integer_set: simple unoptimized 32-bit and 64-bit integer sets, by jordan4ibanez
list: easy-to-use implementation of Python-like lists, with methods append(), clear(), copy(), count(), extend(), insert(), pop(), remove(), reverse(), sort(), by Zdenek Grof
maps: wrapper by Tomohiro Degawa for stdlib_hashmaps that simplifies adding a key-value mapping and getting the value mapped to a key
Multidimensional Array Containers (MAC): library to create and manipulate arrays of any rank, by Álvaro R. Puente-Uriona, meant to serve as a building block for codes that expand on “rank-agnostic” programming
repot: abstract data types designed for the repository pattern for reading configuration files in Fortran, by Tomohiro Degawa. The repository pattern is a design pattern that makes an object persistent in a repository and reconstructs it from the repository. Repot_examples has practical usage examples.
rearrayfx: demonstrates a reallocatable array structure with overprovision at re-allocation in order to decrease the number of reallocations, by Bálint Aradi
slinked-list: simple generic singly linked list module for in-memory storage of small amounts of data, by zoziha
smart-pointers: tracks references to program resources and automates the freeing of those resources if and only if the reference count drops to zero, by Damian Rouson et al. Most commonly, the reference is a pointer and the resource is memory.
Yet Another Fortran Tree (yaftree): single-module lightweight implementation of a dictionary (key–value pairs) and set (only keys), by Dominik Gronkiewicz. Some features, such as interface for popular data types (INTEGER, CHARACTER etc) are intentionally omitted to keep the size down to the minimum.
flexi: High-Order Unstructured Discontinuous Galerkin Fluid Dynamics Solver
flop: operator-oriented library for two-dimensional incompressible fluid flow simulation, by Tomohiro Degawa
HeatFlow: software package for modelling dynamical heat transport in systems using finite difference methods, by Harry Mclean et al. The software is primarily designed to utilise the Cattaneo method, but the Fourier method can be used instead.
interpolate-fields: interpolates DNS data to a new grid using linear interpolation, by Pedro Costa. It can run and store the interpolated data in a massively-parallel setting using MPI I/O. For now, it assumes two regular Cartesian grids with the file format of CaNS.
Navier_Stokes_Spectral_Method: Navier Stokes simulation using the spectral method, visualized with gtk-fortran, by Jules Minard
Smoothed Particle Hydrodynamics(SPH): uses code from the book Smooth Particle hydrodynamics - A Meshfree Particle Method as a starting point, by zoziha
fldpc: LDPC (Low-Density Parity-Check) decoder (coset decoding with syndrome), by Marco Origlia
sodium: Fortran bindings by Andre Smit for libsodium, a C library for encryption, decryption, signatures, password hashing, etc.
fortran-lmdb: collection of interface bindings by interkosmos by the OpenLDAP Lightning Memory-Mapped Database (LMDB), a B-tree-based database management library modeled loosely on the BerkeleyDB API
fortran-sqlite3: Fortran 2018 interface bindings to SQLite 3, by interkosmos
fpq: modules with PostgreSQL (libpq) Fortran bindings, by Andre Smit
libpq-fortran: interface by ShinobuAmasaki to the PostgreSQL libpq C Library
SQLite for Fortran (sqliteff): thin wrapper around the SQLite library, by Brad Richardson. The sqliteff_* functions are effectively identical to the sqlite3_* functions that would be called from C, but with Fortran intrinsics and types.
datetime: library for simple, time-zone-independent date and time management, by Patrizia Favaron
datetime-fortran: time and date manipulation facilities, by milancurcic
m_time: displays dates in a variety of formats and performs basic date and time computation, by urbanjost
time-f: wraps time.h of the C standard library, by 0382
gravmod3d: 3D forward modeling of bodies discretized by rectangular prisms with parabolic density contrast, an implementation by Oscar Mojica of the three-dimensional gravity modeling with parabolic density contrast presented in the paper 3-D forward gravity modeling of basement interfaces above which the density contrast varies continuously with depth by V. Chakravarthi et al., Computers & Geosciences (2002)
hydroanalyzer_fortran: program to analyze hydrological information, focused on frequency analysis of discharge data, calculating the potential evapotranspiration on a monthly scale using different methods, and performing a simple soil water balance using the Thornwaite method, by Oscar Garcia-Cabrejo
Maptran 3D: Modern Fortran 3D coordinate conversions for geospace ecef enu eci, from geospace-code. Similar to Python PyMap3D and Matlab Matmap3d.
Modified_Cam_Clay_Potts: Modified cam clay with Mohr-Coulomb surface in the deviatoric plane, from CriticalSoilModels. Also Strain_Rate_Mohr_Coulomb, associated with the paper Constitutive modelling of non-cohesive soils under high-strain rates: a consistency approach by Luis E. Zambrano-Cruzatty et al., Géotechnique (2024).
PICO_Fortran: implementation by Didier M. Roche of the Potsdam Ice-shelf Cavity mOdel from the paper Antarctic sub-shelf melt rates via PICO, by Ronja Reese et al., (2018).
econ-toolchain: general tools used for structural macroeconomic modeling, including codes for global optimization, I/O, Markov chains, finding roots, golden-section search, and unit testing, by Renato Zimmermann.
Deformation Monitoring Package (DMPACK): package for sensor control and automated time series processing in geodesy and geotechnics, consisting of a library libdmpack and additional programs based on it which serve as a reference implementation of solutions to various problems in deformation monitoring, by Philipp Engel
friction: routines for calculating the frictional response of contacting bodies, using the Coulomb, Lu-Gre, Maxwell, Generalized Maxwell Slip, Stribeck, and Modified Stribeck models, by Jason Christopherson
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
erloff: errors and logging for Fortran, by Brad Richardson. The basic usage is that a procedure can have intent(out) message and/or error list arguments, or as a component of its return value.
errstat: error status and message handling library for Modern Fortran, by Tomohiro Degawa. Also fassert, a simple assertion library
ferror: library to assist with error handling in Fortran projects
Fortran Error Handler: universal and comprehensive solution for applications requiring functional and robust error handling, utilising the power of modern object-oriented Fortran, by Sam Harrison and KellerV
Fortran Error Handling: makes error handling easier by providing a type, error_t, to indicate if a procedure invocation has failed, from SINTEF. Errors can be handled gracefully and context can be added while returning up the call stack. It is also possible to programmatically identify and handle certain types or errors without terminating the application. It generate stacktraces along with any error when combined with the Fortran Stacktrace library, which enables generation of stacktraces for Fortran by wrapping the C++ library backward-cpp.
Fortran Equation Parser (feqparse): equation parser Fortran class that is used to interpret and evaluate functions provided as strings, by Joe Schoonover
fortran_function_parser: function parser module by Jacob Williams is intended for applications where a set of mathematical fortran-style expressions is specified at runtime and is then evaluated for a large number of variable values. This is done by compiling the set of function strings into byte code, which is interpreted efficiently for the various variable values.
Fortran Function Parser (ffp): evaluates a string containing a mathematical expression that can be formed by numbers, brackets, functions, and variables, by Wilton P. Silva and Ivomar B. Soares
hp: rpn calclulator with a maximum stack size of 5, by sgeard It has full support for real and complex numbers and will calculate summary statistics for a set of reals of real pairs.
M_calculator: parse Fortran-like double precision scalar expressions, by urbanjost
M_matrix: Fortran callable version of old matlab-like interface, by urbanjost
shunting-yard-fortran: small expression parser using shunting yard algorithm, by Ian Giestas Pauli
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
kissfft-f: wrapper by zozhia for KISS FFT, a mixed-radix Fast Fourier Transform in C
fcat: port of cat
command used to concatenate file(s) to standard output, by soonsimple
fed: functions to make it easier to create Fortran edit descriptors, by Tomohiro Degawa
fmmap: provides some of the features of the C posix or Windows memory mapped files under a simple and unique Fortran interface, by PierUgit. Two uses are allocating arrays that are potentially bigger the RAM+swap size, and which are backed in a temporary file (anonymous mapping), and opening existing files or creating new files, and mapping them to an array.
flibcsv: bindings by Andre Smit to libcsv, a fast and flexible CSV library written in pure ANSI C that can read and write CSV data
fortran_huffman: Huffman code compression, by Euler-37
fortran-messagepack: prototype library for MessagePack (an efficient binary serialization format) support in Fortran, by Kelly Schultz
fortran-sperr: interface bindings by Oscar Mojica to SPERR, a lossy scientific (floating-point) data compressor in C and C++ that produces one of the best rate-distortion curves
fortran-zstd: Fortran 2018 interface bindings to selected Zstandard functions, by interkosmos. Zstandard is a fast compression algorithm, providing high compression ratios.
High Performance Parallel Data Interface to HDF5 (h5part): interface to the structured HDF5 data format that stores multiple time-step data for particle simulation scenarios and can be used for ParaView / VisIt visualization, by zoziha
IO Fortran Library: module providing high level routines for doing internal and external IO, by Austin C. Bullock. In particular, the module provides a handful of generic interfaces for performing string-based and array-based IO that are useful for recording program data, reading data into programs, and for writing formatted logs and output.
io_utilities: modules to help with input and output, by Arjen Markus: cmdparse parser for minimalistic commands (keyword and zero or more arguments), keyvars read in INI-files and fill in the values of the variables automatically, can also save the data in an INI-file, progressbar presents a progress bar on the screen (supports different styles)
json-fortran-benchmarks: benchmarks for JSON Fortran parsers, by jacobwilliams. Also comparison to Python. Discussed here
h5fortran-mpi: HDF5-MPI parallel Fortran object-oriented interface, from scivision
hdf5-benchmark: benchmarking speed of HDF5 writes from MPI parallel workers, by scivision
h5fortran: Simple, robust, thin HDF5 polymorphic Fortran read/write interface, by geospace-code
nc4fortran: object-oriented Fortran NetCDF4 interface, by geospace-code
NetCDF Input-Output (NCIO): simple Fortran interface to NetCDF reading and writing, by alex-robinson
Return of JSON for Fortran (rojff): with an interface inspired by jsonff, the data semantics and parser are redesigned to allow for high performance, by Brad Richardson and kmorris
Self-Baked-Fortran-NetCDF-Library: light-weight NetCDF C Library wrapper and an intermediate interface, by Han Tang. The major difference between this library and most of the other implementations (for example nc4fortran) is that this library is built on top of NetCDF C library directly.
stl-fortran: Fortran STL (stereolithography) File I/O, by Jacob Williams
toml-f: TOML parser implementation for data serialization and deserialization in Fortran. jonquil provides a compatibility layer to enable TOML Fortran using libraries to consume JSON as well as allow JSON consuming libraries to try out TOML.
VTKFortran: parse and emit files conforming VTK (XML) standard, by szaghi et al.
metis-fpm: Fortran API and a source repackaging by gnikit of METIS, a set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices, from KarypisLab
ParMETIS for fpm: Fortran API and a source repackaging by gnikit of ParMETIS, an MPI-based library for partitioning graphs, serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices, from KarypisLab
fortran2018-examples: Fortran 2018 standard examples with broad applications, from SciVision
githubactions_intro: introduces Github Actions as a tool for lightweight automation of scientific data workflows, with examples in Python and Fortran using gnuplot, by Oscar Mojica
M_intrinsics: man(1) pages for the standard Fortran intrinsics, with a secondary goal of providing a tested working example program for each intrinsic
blocktran: falling-block object-oriented Fortran 2018 game, with resizable playfield, from fortran-gaming
FORage: simple, postapocalyptic, pigeon-themed expedition manager game, by Sebastian Mutz
fortran-raylib: interface bindings to raylib 4.5, for 2-D and 3-D game programming, by interkosmos
mastermind: classic MasterMind game in modern Fortran 2008, from fortran-gaming
ForSudoku: sudoku generator and solver, by Vincent Magnin
argparse-f: Modern Fortran command line parser, implemented with OOP, by 0382 and zoziha
argv-fortran: a better get_command_argument for Fortran that returns the argument in an allocatable character string, by Jacob Williams
BeFoR64: Base64 encoding/decoding library for FoRtran poor men, is a pure Fortran (KISS) library for base64 encoding/decoding for modern (2003+) Fortran projects
FACE: Ansi Colors and Styles Environment, by szaghi et al.
files_f90: directory reader by jordan4ibanez
FLAP: command Line Arguments Parser for poor people, by szaghi et al. A KISS pure Fortran Library for building powerful, easy-to-use, elegant command line interfaces
forbear: progress bar environment by szaghi and jhykes
ForClust: manage and control a Linux system, such as adjusting the settings of the CPU and other components, by Seyed Ali Ghasemi
Fortran pathlib: Filesystem path manipulation utilities for standard Fortran, from scivision. Inspired by Python pathlib and C++17 filesystem.
fortran-requests: analog to the Python requests module, by Ian Giestas Pauli – a work in progress
fortran-sleep: OS/compiler-independent “sleep” Fortran subroutine that calls c_sleep, from scivision
fortran_utilities: procedures to add colour to output via ANSI colour codes, create a progress bar, turn variables into strings, and print the time, by Lewis McMillan
fortran-zlib: collection of Fortran 2018 ISO_C_BINDING interfaces to selected zlib functions, by interkosmos. Zlib is a lossless data-compression library.
ForTime: provides a timer object for measuring elapsed time, by Seyed Ali Ghasemi. It includes procedures for starting and stopping the timer, as well as calculating and printing the elapsed time in seconds.
functional-fortran: library for functional programming in modern Fortran
fwalk: Fortran bindings by Andre Smit for libcwalk, a lightweight C path manipulation library for Unix and Windows
general-purpose-fortran: non-numeric tasks such as command-line parsing, string functions, date-and-time manipulation and display, interfacing to the C POSIX system routines, by urbanjost
json-fortran: user-friendly, thread-safe, and object-oriented API for reading and writing JSON files, written in modern Fortran, by Jacob Williams
M_CLI2: cracks the command line when given a prototype string that looks very much like an invocation of the program, by urbanjost. A call to get_args(3f) or one of its variants is then made for each parameter name to set the variables appropriately in the program.
M_history: input line history editor, by urbanjost
M_kracken95: Fortran 95 version of the kracken(3f) procedure (and related routines) for command line parsing, by urbanjost
M_msg: convert all common variables to a string in Fortran using unlimited polymorphic variables, by urbanjost.
M_sets: basic set functions reminiscent of those in Matlab: union
, unique
, intersect
, setdiff
, ismember
, setxor
, by urbanjost
oolong: object-oriented logging system by Ed Hone that aims to provide a simple, flexible logging interface that will enable a wide range of logging functionality for a wide range of model paradigms
orbs: wrapper that allows arithmetic operations for stdlib_bitsets, by Tomohiro Degawa. It expands the range of information conveyed by bitsets by providing several operators, including logical, shift, and arithmetic operators on the bitset.
paramcard: command-line parameter input made simple, by Takahiro Ueda
PENF: Fortran (standard 2003) module useful to achieve portable codes. The module makes available portable kind-parameters and some useful procedures to deal with them
QDUtilLib: modules for numerical parameters, strings, reading and write matrices, and linear algebra, by lauvergn
Quantities for Fortran (quaff): makes math with units more convenient, by Brad Richardson et al. This library provides all the functionality necessary to almost treat quantities with units associated with them as though they were just intrinsic real values
reference-counter: object-oriented, extensible reference-counting utility for Fortran, by Damian Rouson et al.
SM3-Fortran: library with a Fortran interface SM3 by zoziha of GmSSL and its usage examples. The SM3 password hashing algorithm is a hash algorithm similar to SHA-256, which belongs to the Chinese national standard.
sourcery: utilities such as array functions, assertions, emulated intrinsic functions: findloc, emulated collective subroutines: co_sum, co_broadcast, user-defined collective subroutines: co_all, string functions, and classes for parallel data partitioning and gathering and the (Co-)Object pattern abstract parent, by Damian Rouson and Brad Richardson
stdlib: utilities, algorithms, and mathematics codes for a Fortran Standard Library, from fortran-lang. Has codes for sorting, statistics, strings, hashing, probability distributions, random number generation, numerical integration, and other numerical methods.
subprocess.f: library for forking a child process, by David Pfister
task-dispatch: interpreter for numerical calculations, by Dominik Gronkiewicz
tictoc_fortran: TicToc (timer) class that calls cpu_time
, by Wesley Cota
timer: module to get the number of seconds between two timestamps, by zoziha
cairo-fortran: libcairo bindings for Fortran from the gtk-fortran project available as a separate fpm package, by Carlos Une
fdata2pyplot: simple module for passing Fortran output to a Python script to later use Matplotlib to make a figure, by Jiachen An
ForCAD: library for geometric modeling, supporting B-Spline, NURBS, Bezier, and Rational Bezier curves, surfaces, and volumes, by Seyed Ali Ghasemi
ForColormap: small colormap library independent of any graphical toolkit, by Vincent Magnin et al. It just converts a real value to RGB values, that can be used with any toolkit offering bitmap drawing.
forIGES: utilities for reading and writing a subset of the IGES CAD file entities described in the IGES 5.3 specification, by rweed. The focus of forIGES is on geometric entities such as NURBS curves and surfaces.
ForImage: library for working with image files (PNM format) and managing colors effectively, by Seyed Ali Ghasemi
fortran-dialog: wrapper module by interkosmos around dialog to create text user interfaces in Fortran 2008, similar to pythondialog for Python
Fortran Intuitive Graphics (fig): provide intuitive graphics capabilities, by AnonMiraj. It offers basic 2D primitives such as lines, circles, ellipsis, and rectangles for creating graphical representations.
fortran-sdl2: collection of ISO C binding interfaces to Simple DirectMedia Layer 2.0 (SDL 2.0), for 2D and 3D game programming in Fortran, by interkosmos
fortran-grace: collection of Fortran 2018 interfaces to the scientific plotting tool Grace/XmGrace, by interkosmos. This library covers the FORTRAN 77 and the C API of Grace. This library covers the FORTRAN 77 and the C API of Grace.
fortran-motif: collection of ISO C binding interfaces to X/Motif, to create graphical user interfaces for Unix in Fortran 2008, by interkosmos. The library includes selected bindings to Xlib, Xt, Xm, and the XmHTML widget to render HTML 3.2 inside a Motif widget (optional).
fortran-simplify: module to reduce the over-sampled resolution of a polyline, implementing the nth_point, radial_distance, perpendicular distance, and Reumann-Witkam algorithms, by Joshua Aiken. This process can be useful when working with data that is noisy but usable with a significantly reduced resolution.
fortran_stb_image: bindings by Lewis McMillan for stb_image and stb_image_write, for reading, loading, and processing images
Fortran Terminal (fortty): create colorful terminal applications in Fortran, by Sebastian Ehlert
fortran-xlib: collection of ISO C binding interfaces to Xlib for Fortran 2003, by interkosmos. Currently, only a subset of Xlib is implemented. In order to work with XPM files, interfaces to libxpm are included.
fplot: provides a convenient interface for plotting with Gnuplot, by jchristopherson
gtk-fortran: cross-platform library to build Graphical User Interfaces (GUI), by Vincent Magnin et al. Gtk-fortran is a partial GTK / Fortran binding 100% written in Fortran, thanks to the ISO_C_BINDING module for interoperability between C and Fortran. gtk-fortran-extra has extra examples under an MIT license
M_attr: set terminal text attributes using ANSI escape sequences
M_color: convert between RGB color values and other common color models, by urbanjost
M_draw - low level vector graphics library: base graphics library intended for use with Fortran although largely written in C. It is based on the public domain VOGLE graphics library. It allows for creating vector-based graphics with a variety of output devices.
M_fixedform: simplifies creating a TUI (Terminal User Interface) with Ncurses from Fortran, by urbanjost. It facilitates creating simple forms in terminal windows.
M_ncurses: module that allows use of the C Ncurses library for controlling and formatting terminal displays, by urbanjost
M_pixel: creates pixel images with a vector-oriented graphics library that emulates a subset of the M_draw vector graphics library, by urbanjost. It is supplemented with additional modules that read and write GIF files, including animated GIFs.
ogpf: Object-Based Interface to GnuPlot from Fortran, by kookma
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
tikz-fortran: module that generates figures using PGF/Tikz, a pair of languages for producing vector graphics, by Hui-Jun Chen
xframes-fortran: interface to XFrames, a library for building GPU-accelerated, native-like desktop applications using a variety of programming languages
arrow-fortran: automatic bindings by Ludovico Nicotina and Vincent Magnin to the C API for the arrow project. Arrow is a language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware like CPUs and GPUs.
dynload-julia: dynamically load Julia from Fortran, by brocolis
fcppstring: Fortran wrapper for C++ strings, by Will Dickson
fortran-modbus: interface bindings to libmodbus, for Modbus RTU/TCP access, by interkosmos
fortran-c-cpp-interface: interoperability examples between C, C++ and Fortran, from scivision. Uses the standard C binding to define variable and bind functions/subroutines.
fortran-curl: collection of ISO C binding interfaces to libcurl for Fortran 2008, by interkosmos. Compilation has been tested with GNU Fortran 10 and cURL 7.74.0.
fortran-lua54: Fortran 2008 interface bindings to Lua 5.4, from interkosmos. There is also fortran-lua53.
fortran-tcl86: ISO_C_BINDING interface library for interoperability with Tcl/Tk 8.6, by interkosmos, allowing the user to embed Tcl into Fortran, create Tcl extensions in Fortran (with Tcl Stubs), access (a subset of) the Tcl/Tk C API from Fortran, use Tcl as an evaluatable configuration file format, and add graphical user interfaces to Fortran programs.
fortran-unix: Fortran 2008 ISO C binding interfaces to selected POSIX and SysV types, functions, and routines on 64-bit Unix-like operating systems, by interkosmos
fortran-xmpp: interface bindings to the XMPP (Extensible Messaging and Presence Protocol) client library libstrophe, by interkosmos.
hwinfo-fortran: provides access to hardware information using OS APIs for Unix-like operating systems, by Shinobu Amasaki
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
popen-fortran: module for popen() by Jacob Williams, which executes a command specified by a string argument, creates a pipe between the calling program and the executed command, and returns a pointer to a stream that can be used to either read from or write to the pipe.
uint-fortran: unsigned integer, 16 or 32 bit, that is interoperable with C, by Shinobu Amasaki
bspline-fortran: Multidimensional B-Spline Interpolation of Data on a Regular Grid, by Jacob Williams
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.
interpolation: Matlab/Octave-like interpolation functions such as linear and PCHIP (Piecewise Cubic Hermite Interpolating Polynomial), by Jiří Fürst
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
blas-interface: interface declarations for basic linear algebra subprograms, by Sebastian Ehlert
Fortran GeneraL Math modules (fglm): defines types and operations for a 4x4 matrix and 3-element vectors, for int32
, real32
, and real64
data, providing some functionality of the JOML – Java OpenGL Math Library, by jordan4ibanez
ForBLAS: compile the BLAS and their drivers using the Fortran Package Manager, by Seyed Ali Ghasemi. ForLAPACK does so for LAPACK.
ForSVD provides functions and subroutines for calculating the singular value decomposition (SVD) of a matrix, calling LAPACK. ForEig calculates eigenvalues and eigenvectors using LAPACK or MKL. ForPCA does principal component analysis (PCA).
ForInv calculates the inverse and pseudoinverse of a matrix.
ForDot: overloads the dot_product function to enable efficient dot product with/without coarrays, by Seyed Ali Ghasemi
ForMatMul: library that overloads the matmul function to enable efficient matrix multiplication with coarrays, by Seyed Ali Ghasemi
fortran-lapack: modern Fortran implementation of the Reference-LAPACK library, by Federico Perini. The reference Fortran 77 library is automatically downloaded from its master repository, and processed to create Modern Fortran modules with full explicit typing features.
FSPARSE: object-oriented API for sparse matrices with some basic kernels and utility functions, such as conversion from dense matrices and matrix-vector products, by jalvesz. Supported sparse matrix types are COordinate Sparse format (COO), Compressed Sparse Row format (CSR), Compressed Sparse Column format (CSC), and ELLPACK (ELL).
kiss: Krylov-based iterative sparse solvers, by Ivan Pribec
libsparse: Fortran 2003 library that provides objects to create and handle rectangular and square sparse matrices using different formats: Linked List, COOrdinate storage (with elements stored using a hashing function), or Compressed Row Storage, by Jeremie Vandenplas. The library relies on different libraries, such as BLAS/LAPACK libraries, PARDISO (at this stage, Intel MKL PARDISO), and METIS 5.
LIBXSMM: library for specialized dense and sparse matrix operations as well as for deep learning primitives such as small convolutions, from hfp
LightKrylov: provides a simple set of Krylov-based techniques to study the spectral properties of the exponential propagator. Associated paper: R. S. Frantz, J.-Ch. Loiseau, and J.-Ch. Robinet. Krylov methods for large-scale dynamical systems: applications in fluid dynamics. Appl. Mech. Rev., 2023.
linalg: linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines, by jchristopherson
linalg_fortran: interface to Lapack procedures that invert matrices, compute determinants, compute eigenvalues and eigenvectors of symmetric or Hermitian matrices, and compute UAU.T, by Euler-37
LSMR: code for sparse equations and least squares, originally by David Fong and Michael Saunders, updated by Jacob Williams
LSQR: Fortran 2008 edition of LSQR, a conjugate-gradient type method for solving sparse linear equations and sparse least-squares problems, by Jacob Williams.
mfi: modern Fortran Interfaces to BLAS and LAPACK, by 14NGiestas
M_LA: small collection of linear algebra routines, including reshaping an array, creating a magic square array, and computing the determinant and inverse of a matrix, by urbanjost
minres: implementation of MINRES by Will Dickson based on the original Fortran 90 code by Chris Paige, Sou-Cheng Choi, and Michael Saunders, which solves sparse symmetric systems Ax = b
polynomial_arnoldi: polynomial Arnoldi preconditioner for GMRES, applied to the 2D Poisson equation, by Jean-Christophe Loiseau
sparse_fortran: derived types for sparse matrices in COO and CSR format with functions for matrix multiplication, by Euler-37
SpecialMatrices: simple package providing specialized routines for operations such as computing the determinant, inverse, singular value decomposition, and eigenvalues, for common structured matrix types, such as diagonal, bidiagonal, tridiagonal, symmetric tridiagonal, Poisson2D, by Jean-Christophe Loiseau
pseudoRandom Approach For Finding Local Energetic minima (RAFFLE): package for structural prediction applied to material interfaces, associated with the paper Predicting Phase Stability at Interfaces, by J. Pitfield et al., Physical Review Letters (2024)
geompack: modernization by Jason Christopherson of the GEOMPACK Fortran 77 library by Barry Joe for computing Delaunay triangulations
gmsh-fpm: provides access to the Fortran F2018 API of Gmsh, examples of how to use the Fortran API, and a Fortran compiled executable for Gmsh itself, by gnikit
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.
Fortran Multiple Precision Library (FMPL): by Zander Lewis
Adaptive Training for High Efficiency Neural Network Applications (ATHENA): library for developing and handling neural networks (with a focus on convolutional neural networks), by Ned Taylor
forncnn: experimental Fortran binding for ncnn c_api, by mizu-bai. Ncnn is a high-performance neural network inference framework optimized for the mobile platform.
Fortran FLANN binding: Fortran bindings to the FLANN library for performing fast approximate nearest neighbor searches in high dimensional spaces, by ivan-pi
Inference-Engine: software library by Damian Rouson et al. for researching ways to efficiently propagate inputs through deep, feed-forward neural networks exported from Python by the companion package nexport
KohonenF08: library for Self-Organizing Maps using object-oriented programming and modern Fortran features, by Oscar Garcia-Cabrejo
neural-fortran: parallel neural net microframework, from modern-fortran
ForSolver: solves linear and nonlinear equations, by Seyed Ali Ghasemi. For nonlinear equations the available methods are newton, newton-modified, newton-quasi-fd, newton-quasi-fd-modified, newton-quasi-cs, and newton-quasi-cs-modified, where “fd” and “cs” stand for the finite difference and complex step methods.
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.
fastconv: simple library for 1D and 2D convolutions, by Dominik Gronkiewicz
fastmath: library for fast, approximate math functions: exp, log, 1/sqrt, by Federico Perini. These functions provide fast, approximate evaluations of the exponential, logarithm and normalization functions in 64-bit precision.
fast_math: collection of functions for fast number crunching, including a fast and precise sum and dot_product for 1D arrays, a reciprocal square root, the logarithm, and trigonometric functions, by jalvesz
ForDiff: numerical differentiation using the complex step method or finite differences, by Seyed Ali Ghasemi
forlab: module that provides a lot of functions for scientific computing mostly inspired by Matlab and Python’s module NumPy, by zoziha
fortran-primes: library to return the nth prime number, the prime numbers in a range, test if a number is prime, return the nth prime number greater than a specified number, and factor a number into primes, by Federico Perini, based in part on codes by Michal Forisek, David Deley and Primes.jl
NAFPack: numerical analysis package, offering a comprehensive set of algorithms for diverse numerical computations, by Jules Minard. These computations include Fast Fourier Transform, linear system solving, and eigenvalue/eigenvector calculations.
NumDiff: modern Fortran numerical differentiation library, by Jacob Williams
Numerical_utilities: Kahan algorithms for the sum, variance, and covariance, using MPI, by osada-yum
rational_number: procedures for rational numbers, such as arithmetic operations, conversion to and from real variables, and conversion to a string, by art-rasa
rpn-calc-fortran: Fortran 2018 Reverse Polish Notation (RPN) calculator from scivision. Over 100 functions not in standard Fortran
GaussJacobiQuad: routines for the Gauss-Jacobi Quadrature, by Rohit Goswami and Ondřej Čertík
integrate_fortran: Gauss-Legendre quadrature for 1D and multidimensional integrals, by Euler-37
kronrod: generates Gauss-Kronrod coefficients, by Jacob Williams
Quadpack2: update by Jacob Williams and Sebastian Ehlert of QUADPACK, a FORTRAN subroutine package for the numerical computation of definite one-dimensional integrals
quadrature-fortran: adaptive Gaussian quadrature with modern Fortran, by jacobwilliams
daskr: differential-algebraic system solver with rootfinding, by P. N. Brown et al. It includes options for both direct and iterative (Krylov) methods for the solution of the linear systems arising at each (implicit) time step.
ddeabm: modern object-oriented Fortran implementation of the DDEABM Adams-Bashforth-Moulton ODE solver, by Jacob Williams and web-flow
diffeq: library providing an object-oriented approach to solving ordinary differential equations, by Jason Christopherson. Available ODE solvers are 4th Order Runge-Kutta and Adams-Bashforth-Moulton (fixed step) and Dormand-Prince Runge-Kutta 5th/4th Order
dop853: modern Fortran (2003/2008) implementation of Hairer’s DOP853 ODE solver, by Jacob Williams. The original FORTRAN 77 code has been extensively refactored, and is now object-oriented and thread-safe, with an easy-to-use class interface. DOP853 is an explicit Runge-Kutta method of order 8(5,3) due to Dormand & Prince (with stepsize control and dense output).
dvode: Modern Fortran Edition of the DVODE ODE Solver, by Jacob Williams
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.
ODEPACK: collection of solvers for the initial value problem for ordinary differential equation systems
odepack: Modern Fortran interface by Nick Wogan for the LSODA and LSODAR routines in ODEPACK, which is for solving ordinary differential equation initial value problems. This repository contains a modified version of ODEPACK which is threadsafe.
rkf45: Fehlberg fourth-fifth order Runge-Kutta method, adapted by zoziha from the code at Netlib
rklib: Fixed and variable-step Runge-Kutta solvers in Modern Fortran, by Jacob Williams
stiff3: subprogram for solving stiff autonomous systems of ordinary differential equations (ODE’s) using a semi-implicit Runge-Kutta method with three steps (SIRK3), by Ivan Pribec and Sebastian Ehlert. The stiff3 source code was originally published in the following book: Villadsen, J., & Michelsen, M. L. (1978). Solution of differential equation models by polynomial approximation. Prentice-Hall, Inc.
twopnt: modern Fortran translation by Federico Perini of the TWOPNT program for boundary value problems
conmax: general nonlinearly constrained function minimization
conmin: subroutine for the solution of linear or nonlinear constrained optimization problems, by G. N. Vanderplaats, updated by Jacob Williams
ForTimize: aims to standarize the way to call optimization functions to ease the process of selecting algorithms to optimize problems, by Federico E. Benelli. The gradient descent and Nelder-Mead algorithms are implemented.
fmin: derivative-free 1D function minimizer in modern Fortran, by Jacob Williams
lbfgsb: limited memory code for solving bound constrained optimization problems, by Jorge Nocedal and Jose Luis Morales
libdogleg-f: Fortran bindings to libdogleg - a large-scale nonlinear least-squares optimization library, by Ivan Pribec. Currently only the dense optimizer calls are supported.
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
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
optgra: optimization algorithm specifically designed for near-linear constrained problems, which commonly occur in trajectory optimization, developed and implemented by Johannes Schoenmaekers, and modernized by Jacob Williams
pikaia: Modern Fortran Edition of the Pikaia Genetic Algorithm by Jacob Williams
PowellOpt: collection of derivative-free optimization algorithms by M.J.D. Powell.
psqp: sequential quadratic programming algorithm, with simple bounds on variables and general nonlinear constraints, by Ladislav Luksan, modernized by Jacob Williams. Other optimization codes are at Luksan’s site.
pso: particle swarm optimization in Fortran, by Konrad1991
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
cafut: provides a simple, object-oriented unit testing framework meant for applications using Coarray Fortran, by Renato Zimmermann
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.
forthread: threading library with a simple binding to POSIX pthread, by jordan4ibanez. It comes with a thread pool/dispatcher, a concurrent FILO linked queue, and a concurrent FILO array queue.
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
Fortran MPI exploration: explores a simple MPI cartesian grid with halo region updates, mpi_f08, havaita, some clever encapsulation, and general project structure and architecture, by MatthAlex
codata: provides the codata constants 2010, 2014 and 2018, by Milan Skocic. The raw codata from http://physics.nist.gov/constants are parsed line by line where the columns name, value, uncertainty and unit are formatted to be conform to Fortran double precision. pycodata is a Python wrapper.
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.
fundamental_constants: modules with the CODATA fundamental physical constants, generated by a Python script from the NIST website, by Vincent Magnin
Neural-Network-Quantum-States: machine learning demonstration of neural network quantum states, by acbbullock
signedMCRT: use of signed distance fields in Monte Carlo Radiative Transfer, by Lewis McMillan. This allows modelling of smooth surfaces without the need to use triangle or similar meshes.
vdist-solver-fortran: velocity distribution function solver for Python, calling Fortran, using Liouville’s theorem, by Nkzono99
dftd4: Generally Applicable Atomic-Charge Dependent London Dispersion Correction
Finite Element Solvers for Atomic Structure Calculations (featom): library implementing accurate and efficient radial Schrödinger and Dirac finite element solvers, by Ondřej Čertík, Rohit Goswami, and Isuru Fernando. The formulation admits general potentials and meshes: uniform, exponential, or other.
General Quantum Chemistry Properties Grabber (gpg): obtains a wide range of properties, including molecular geometries, electronic energies, dipole moments, vibrational frequencies, from the output files of popular quantum chemistry software packages, including ORCA, Qchem and Turbomole, by Lukas Wittmann
Geometrical Counter-Poise Correction (gcp): an associated paper is A geometrical correction for the inter- and intra-molecular basis set superposition error in Hartree-Fock and density functional theory calculations for large systems, by Holger Kruse and Stefan Grimme, Journal of Chemical Physics (2012)
hartree-fock: simple implementation of the Hartree-Fock algorithm, by Lukas Wittmann. STO-nG basis sets are used, which are generated from Slater exponents given in the input file. Some parts like the input reader and straightforward functions were taken from Marvin Friede’s hartree-fock implementation.
HoneyTools modules by Gabriele Bellomia to easily deal with nontrivial honeycomb structures in real-space: generate the coordinates, compute all the neighbor-shells, get direct access to logical masks for nearest and next-nearest neighbors (nth-order can be easily computed from the shell table), hence readily build tight-binding hamiltonians, or any other lattice quantity requiring real-space geometrical information.
libconeangle: library for calculating exact ligand cone angles according to the paper Bilbrey, J. A.; Kazez, A. H.; Locklin, J.; Allen, W. D. Exact Ligand Cone Angles. Journal of Computational Chemistry 2013, 34 (14), 1189–1197.
Molecular Orbital KIT (MOKIT): utilities and modules to transfer MOs among various quantum chemistry software packages, by jxzou. In addition, the automr program in MOKIT can set up and run common multi-reference calculations in a block-box way.
Quantum chemistry Utility for Benchmark Evaluation (QUBE): extracts energies from the output files of quantum chemistry calculations for large benchmark sets, by Lukas Wittmann. It utilizes reference energies for statistical evaluation and comparison of the results obtained from the benchmark sets.
WannInt: library of utilities for Wannier interpolation, meant to serve as a building block for codes that compute the resolution of quantum mechanical operators in the Brillouin zone of a crystal, by Álvaro R. Puente-Uriona
mersenne-twister-fortran: Mersenne Twister pseudorandom number generator, by Jacob Williams
pointsets: modules to construct points in N-dimensional space, such as methods to visit grid points in N-dimensional space, generate points in N-dimensional space based on Latin hypercube samping, generate regularly spaced and pseudo-random points in N-dimensional space, generate quasi-random points in Euclidean N-dimensional space, unit circle, disk, sphere or ball, and return an array of integers in a random order, by Arjen Markus
rngff: unified abstract interface for an object-oriented random number generator and a collection of implementations using various algorithms, by Brad Richardson
rndgen-fortran: module for the KISS random number generator that allows the use of multiple independent random number generators at the same time, by Wesley Cota, based on a code by Thomas Vojta. Module rndgenPL_mod
, adapted from code by Silvio C. Ferreira, extends the generator to an integer power-law distribution.
forgex: regular expression engine using a deterministic finite automaton (DFA) approach, by Shinobu Amasaki. It provides .in.
and .match.
operators to detect if a pattern is contained in or exactly matches a string.
fortran-pcre2: Fortran 2018 ISO_C_BINDING interfaces to Perl-compatible Regular Expressions 2 (PCRE2), by interkosmos
fortran-regex: port by Federico Perini of the tiny-regex-c library for regular expressions. It is based on the original C implementation, but the API is modelled in Fortran style, which is similar to the intrinsic index function.
fortran-regex: Fortran 2003 implementation of regular expressions, by Edward Higgins
Fregex: Perl Compatible Regular Expressions (PCRE) wrapper for Fortran by Ian Giestas Pauli
M_match: basic implementation in Fortran of a subset of regular expressions as described in “Software Tools” by Kernighan and Plauger, 1976.
M_regex: Fortran interface by urbanjost to the POSIX 1003.2 regular expression library using ISO_C_BINDING
polyroots-fortran: modern Fortran library for finding the roots of polynomials, by Jacob Williams
roots-fortran: library for finding the roots of continuous scalar functions of a single real variable, by Jacob Wiliams
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
orderpack: clone by urbanjost of Orderpack 2.0 from Michel Olagnon that has been restructured so as to be useable as an fpm package. It provides order and unconditional, unique, and partial ranking, sorting, and permutation.
stringsort: sorting routines for strings, by Jacob Williams
amosf90: module for AMOS, a package for Bessel functions of a complex argument and nonnegative order, by Euler-37
fortran-bessels: Fortran port (stub) of the Bessels.jl repository, by Federico Perini et al.
specfun: modernization by Jacob Williams of specfun.f from SciPy from the book Computation of Special Functions, by Shanjie Zhang and Jianming Jin, Wiley (1996).
specfunc-fullerton: library for evaluating special mathematical function, based on the fn library of Wayne Fullerton, modernised by Arjen Markus. It has Airy functions, modified Bessel functions, beta functions, exponential and logarithmic integrals, gamma functions, inverse cosine and cosine hyperbolic integrals, miscellaneous functions, and Pochhammer symbols
200+ R packages with Fortran code: R is a free software environment for statistical computing and graphics
fitpack: modern Fortran translation by Federico Perini of the FITPACK package for curve and surface fitting by Paul Dierckx
FJsample: jackknife resampling, with Python bindings, by Ryan Bignell
fstats: modern statistical library containing routines for computing basic statistical properties, hypothesis testing, regression, special functions, and even experimental design, by Jason Christopherson
gslib2.0: Geostatistical Software Library: aims to create a modern version of the original GSLIB source code, by exepulveda
lib_statistics: code for logistic regression, by Alan Miller, packaged for FPM by Sebastian Dyrda
M_datapac: NIST DATAPAC package modularized and made available as an fpm(1) package, by urbanjost, original code by James Filliben. There are routines for computing various probability functions.
odrpack95: collection of subprograms modernized by HugoMVale for fitting a model to data with bound constraints on the model parameters, designed primarily for instances when the explanatory as well as the response variables have significant errors. An associated paper is Algorithm 869: ODRPACK95: A weighted orthogonal distance regression code with bound constraints, by Jason W. Zwolak et al., ACM Transactions on Mathematical Software (2007).
peaks: peak detection library meant to locate peaks and valleys in a signal, by Jason Christopherson. This library works on both smooth data and on noisy data where other routines, especially those that rely upon derivatives, have difficulties.
splpak: routines for fitting (least squares) a multidimensional cubic spline to arbitrarily located data. It also contains routines for evaluating this spline (or its partial derivatives) at any point. This is a modernization by Jacob Williams of the double precision SPLPAK files from NCL.
bstrith: provides procedures for arithmetic operations on binary numbers in strings, by Tomohiro Degawa
enclose: procedures for enclosing a string in brackets, by Tomohiro Degawa
fortran202x_split: Fortran implementation of the Fortran 202X split intrinsic subroutine, by Milan Curcic and Sebastian Ehlert
fortran-shlex: port by Federico Perini of Python’s shlex shell-like lexer. The interface comes with two functions, split
which parses a command-like string and returns an array of allocatable character strings; and shlex
that performs the same, but returns a list of type(shlex_token)
tokens.
Fortran-String-to-Real: converts strings to reals without using an internal read, by Carltoffel. Fortran-String-to-Num is a fork by jalvesz that aims for further improvements on the ASCII to numerical data conversion.
fortran-string-utf-8: module to convert a native character string to an array of UTF-8 characters that behaves as a UTF-8 string, by Gunther Willems
Fortran Tokenizer: basic tokenizer that allows users to easily customize its behavior by defining a function that receives a character(*), intent(in) :: token
and returns .true.
if the string received by the function is a valid token, by Ian Giestas Pauli
iso_varying_string: implementation of the ISO_VARYING_STRING module as defined in the ISO standard, by Brad Richardson
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_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
parff: functional style parser combinator library, by Brad Richardson and Patrick Raynaud. By using a library like this, it is possible to implement parsers for complex formats by composing independent little pieces.
ryu_fortran: Ryu algorithm which converts floating point numbers to decimal strings, by St Maxwell. It is more effective than internal file approach. This implementation is based on the Scala version of Ryu.
scanner: text scanner for parsing, by Andre Smit
strff: library of string functions, by Brad Richardson
StringiFor: Strings Fortran Manipulator with steroids, by szaghi
strith: converts a variable representing a long integer into a string by performing arithmetic operations on numbers in strings, by Tomohiro Degawa
utf8-f: UTF-8 manipulation, by St-Maxwell. The underlying data in a utf8_string object is a deferred-length string of character(len=:, kind=c_char)
type.
fortsa: univariate time series analysis and ARIMA modeling package, by zoziha
spectrum: library containing signal analysis routines with a focus towards spectral routines, by Jason Christopherson
wavepack: computes the wavelet transform of a time series, and significance levels, by zoziha
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.
graphstruc: library that provides an implementation of graph structures in the form of a derived type, by Ned Thaddeus Taylor
strengthcalc: strengthcalc employs mathematical formulae from Mayhew et al. (1992) and Wathen (1994) to estimate the maximum weight one can lift in a single repetition of a physical exercise (known as 1RM: one repetition maximum), by Piotr Bajdek
ForDebug: library designed for debugging Fortran code, especially within pure procedures, by Seyed Ali Ghasemi
fortran_test_helper: library to provide assistance to testing, by Jason Christopherson
ForUnitTest: simple, object-oriented unit testing framework, by Seyed Ali Ghasemi.
julienne: compiler-portable, unit-testing framework for modern Fortran, including accelerated coarray Fortran software, by Katherine Rasmussen and Damian Rouson
M_framework: aggregate of Fortran modules useful for creating terminal messages, comparing expected values to results, writing logfiles and playback journals and performing unit tests for Fortran, by urbanjost
par-funnel: unit test parameterizer using namelist, by Tomohiro Degawa. Par-funnel is not a unit test framework but is intended to be used with other unit test frameworks.
test-drive: lightweight, procedural unit testing framework based on nothing but standard Fortran, by Sebastian Ehlert and Jeremie Vandenplas. Integration with meson, cmake and Fortran package manager (fpm) is available.
testdrive_util: provides procedures to improve the convenience of test-drive, by Tomohiro Degawa
Veggies: unit testing framework written using functional programming principles, with the ability to test parallel code, by Brad Richardson et al. As many of its procedures as possible are marked with the pure keyword, while still allowing the framework to test impure code.
ForOpenAI: library to access the OpenAI API, by Seyed Ali Ghasemi
ForCompile: library to access the Compiler Explorer API, by Seyed Ali Ghasemi
github-org-analyzer: procedures to analyze GitHub organizations and retrieve valuable information about their repositories, by Rajkumar Dongre. By leveraging the power of the http-client package, this analyzer fetches data from the GitHub API to generate insightful reports.
http-client: HTTP client library, by Rajkumar Dongre and Milan Curcic
FoXy: XML parser, from Fortran-FOSS-Programmers