nbehrnd / Fortran-packages-list

List of projects that can be built with the Fortran Package Manager

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Art and Music

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).

Astronomy and Astrophysics

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,

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

Benchmarks

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

Biology and Medicine

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.

Code Tools

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

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

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

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

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

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.

Computational Chemistry

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

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

Containers and Generic Programming

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

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

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

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

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

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

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

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

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

M_hashkeys: collection of hash key generator modules, by urbanjost

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

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

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

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.

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.

Computational Fluid Dynamics

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

Cryptography

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

Databases

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.

Dates and Times

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

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

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

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

Earth Science

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)

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

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

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).

Economics

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.

Engineering

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

Error Handling

assert: simple assertion utility taking advantage of the Fortran 2018 standard's introduction of variable stop codes and error termination inside pure procedures, by Damian Rouson

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.

Expression Parsers

Fortran Equation Parser (feqparse): equation parser Fortran class that is used to interpret and evaluate functions provided as strings, by Joe Schoonover

Fortran Function Parser (ffp): evaluates a string containing a mathematical expression that can be formed by numbers, brackets, functions, and variables, by Wilton P. Silva and Ivomar B. Soares

fortran_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.

hp: rpn calclulator with a maximum stack size of 5, by sgeard It has full support for real and complex numbers and will calculate summary statistics for a set of reals of real pairs.

M_calculator: parse Fortran-like double precision scalar expressions, by urbanjost

M_matrix: Fortran callable version of old matlab-like interface, by urbanjost

shunting-yard-fortran: small expression parser using shunting yard algorithm, by Ian Giestas Pauli

Fast Fourier Transform

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

File I/O

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

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.

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.

fortran_huffman: Huffman code compression, by Euler-37

h5fortran-mpi: HDF5-MPI parallel Fortran object-oriented interface, from scivision

h5fortran: Simple, robust, thin HDF5 polymorphic Fortran read/write interface, by geospace-code

hdf5-benchmark: benchmarking speed of HDF5 writes from MPI parallel workers, by scivision

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

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.

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.

Finite Elements

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

Fortran Books and Tutorials

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

Games and Puzzles

blocktran: falling-block object-oriented Fortran 2018 game, with resizable playfield, from fortran-gaming

ForSudoku: sudoku generator and solver, by Vincent Magnin

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

General Purpose

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.

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

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.

Fortran pathlib: Filesystem path manipulation utilities for standard Fortran, from scivision. Inspired by Python pathlib and C++17 filesystem.

fortran-sleep: OS/compiler-independent "sleep" Fortran subroutine that calls c_sleep, from scivision

fortran-zlib: collection of Fortran 2018 ISO_C_BINDING interfaces to selected zlib functions, by interkosmos. Zlib is a lossless data-compression library.

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

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_args: module that provides for command line parsing using namelist syntax, by urbanjost

M_CLI2: cracks the command line when given a prototype string that looks very much like an invocation of the program, by urbanjost. A call to get_args(3f) or one of its variants is then made for each parameter name to set the variables appropriately in the program.

M_history: input line history editor, by urbanjost

M_kracken95: Fortran 95 version of the kracken(3f) procedure (and related routines) for command line parsing, by urbanjost

M_msg: convert all common variables to a string in Fortran using unlimited polymorphic variables, by urbanjost.

M_path: creates an OOP (Object Oriented Programming) interface to other modules in the General Purpose Fortran package, by urbanjost.

M_readline: interface to the commonly available C procedure readline(3c). to provide a familiar command history interface for interactive programs, by urbanjost

M_sets: basic set functions reminiscent of those in Matlab: union, unique, intersect, setdiff, ismember, setxor, by urbanjost

M_stopwatch: package for measuring cpu and wall clock execution time by urbanjost, based on StopWatch. It supports the wall clock, CPU clock, and a breakdown of the CPU clock into user and system times.

oolong: object-oriented logging system by Ed Hone that aims to provide a simple, flexible logging interface that will enable a wide range of logging functionality for a wide range of model paradigms

paramcard: command-line parameter input made simple, by Takahiro Ueda

PENF: Fortran (standard 2003) module useful to achieve portable codes. The module makes available portable kind-parameters and some useful procedures to deal with them

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.

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

Graphics, Plotting, and User Interfaces

cairo-fortran: libcairo bindings for Fortran from the gtk-fortran project available as a separate fpm package, by Carlos Une

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..

ForImage: library for working with image files (PNM format) and managing colors effectively, by Seyed Ali Ghasemi

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 Terminal (fortty): create colorful terminal applications in Fortran, by Sebastian Ehlert

fortran-dialog: wrapper module by interkosmos around dialog to create text user interfaces in Fortran 2008, similar to pythondialog for Python

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-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-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-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.

fortran_stb_image: bindings by Lewis McMillan for stb_image and stb_image_write, for reading, loading, and processing images

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_calcomp: old graphics library used in conjunction with M_draw for work with old codes, by urbanjost. The CALCOMP library is a simple set of FORTRAN callable graphic routines that allows users to quickly construct plots.

M_color: convert between RGB color values and other common color models, by urbanjost

M_draw - low level vector graphics library: base graphics library intended for use with Fortran although largely written in C. It is based on the public domain VOGLE graphics library. It allows for creating vector-based graphics with a variety of output devices.

M_fixedform: simplifies creating a TUI (Terminal User Interface) with Ncurses from Fortran, by urbanjost. It facilitates creating simple forms in terminal windows.

M_ncurses: module that allows use of the C Ncurses library for controlling and formatting terminal displays, by urbanjost

M_pixel: creates pixel images with a vector-oriented graphics library that emulates a subset of the M_draw vector graphics library, by urbanjost. It is supplemented with additional modules that read and write GIF files, including animated GIFs.

M_slices: basic slice plot module based on M_draw(3f), by urbanjost. A 3-d surface is plotted by plotting slices through the volume which are parallel to the x-y plane.

ogpf: Object-Based Interface to GnuPlot from Fortran, by kookma

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

Interoperability

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-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-modbus: interface bindings to libmodbus, for Modbus RTU and Modbus TCP access, by interkosmos

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

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

Interpolation

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

Linear Algebra

blas-interface: interface declarations for basic linear algebra subprograms, by Sebastian Ehlert

ForBLAS: compile the BLAS and their drivers using the Fortran Package Manager, by Seyed Ali Ghasemi. ForLAPACK does so for LAPACK.

ForDot: overloads the dot_product function to enable efficient dot product with/without coarrays, by Seyed Ali Ghasemi

ForInv calculates the inverse and pseudoinverse of a matrix.

ForMatMul: library that overloads the matmul function to enable efficient matrix multiplication with coarrays, by Seyed Ali Ghasemi

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).

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).

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.

M_blas: Fortran BLAS library implemented as a free-format module, by urbanjost

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

mfi: modern Fortran Interfaces to BLAS and LAPACK, by 14NGiestas

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

SParse matrices in Object-Oriented Fortran (SPOOF): modern, object-oriented Fortran library for sparse matrix computations, by Sam Harrison. It largely draws on the SPARSKIT library, adding an object-oriented interface to improve usability.

sparse_fortran: derived types for sparse matrices in COO and CSR format with functions for matrix multiplication, by Euler-37

Mesh Generation

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

Molecular Dynamics

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.

Neural Networks and Machine Learning

Adaptive Training for High Efficiency Neural Network Applications (ATHENA): library for developing and handling neural networks (with a focus on convolutional neural networks), by Ned Taylor

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

neural-fortran: parallel neural net microframework, from modern-fortran

Numerical

amosf90: module for AMOS, a package for Bessel functions of a complex argument and nonnegative order, by Euler-37

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

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.

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

ForSolver: solves linear and nonlinear equations, by Seyed Ali Ghasemi. For nonlinear equations the available methods are newton, newton-modified, newton-quasi-fd, newton-quasi-fd-modified, newton-quasi-cs, and newton-quasi-cs-modified, where "fd" and "cs" stand for the finite difference and complex step methods.

fortran-bessels: Fortran port (stub) of the Bessels.jl repository, by Federico Perini et al.

fortran-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

GaussJacobiQuad: routines for the Gauss-Jacobi Quadrature, by Rohit Goswami and Ondřej Čertík

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.

Nonlinear Equation Solver with Modern Fortran (nlesolver-fortran): basic Newton-Raphson type nonlinear equation solver for dense systems with m functions of n input variables, by Jacob Williams. Uses LAPACK routines (dgesv or dgels) to solve the linear system.

NumDiff: modern Fortran numerical differentiation library, by Jacob Williams

Numerical_utilities: Kahan algorithms for the sum, variance, and covariance, using MPI, by osada-yum

polyroots-fortran: modern Fortran library for finding the roots of polynomials, by Jacob Williams

rational_number: procedures for rational numbers, such as arithmetic operations, conversion to and from real variables, and conversion to a string, by art-rasa

roots-fortran: library for finding the roots of continuous scalar functions of a single real variable, by Jacob Wiliams

rpn-calc-fortran: Fortran 2018 Reverse Polish Notation (RPN) calculator from scivision. Over 100 functions not in standard Fortran

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

Numerical Integration (Quadrature)

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

Ordinary Differential Equations

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

Optimization

conmax: general nonlinearly constrained function minimization

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

pikaia: Modern Fortran Edition of the Pikaia Genetic Algorithm by Jacob Williams

PowellOpt: collection of derivative-free optimization algorithms by M.J.D. Powell.

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.

simulated-annealing: Simulated Annealing with Modern Fortran by Jacob Williams

slsqp: Modern Fortran edition of the SLSQP optimizer, by Jacob Williams

Parallel Programming

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.

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

Physics

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.

Quantum Chemistry and Electronic Structure

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

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

Random Number Generation

M_random: module of pseudo random procedures, by urbanjost

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

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.

rngff: unified abstract interface for an object-oriented random number generator and a collection of implementations using various algorithms, by Brad Richardson

Regular Expressions

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.

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

Sorting

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

Statistics

fitpack: modern Fortran translation by Federico Perini of the FITPACK package for curve and surface fitting by Paul Dierckx

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.

Strings

enclose: procedures for enclosing a string in brackets, by Tomohiro Degawa

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.

fortran202x_split: Fortran implementation of the Fortran 202X split intrinsic subroutine, by Milan Curcic and Sebastian Ehlert

fsys: library by Jason Christopherson containing system operations and supporting types: string, similar to the iso_varying_string, but with a few differences and a few additional operations, and string_builder, a type that allows concatenating strings while minimizing memory reallocation operations, that behaves similarily to the .NET StringBuilder class

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_overload: overloads of standard operators and intrinsic procedures, including // to concatenate any two intrinsic types into a stringby urbanjost, a format operator to convert a variable to a string, int and real for string and logical arguments, merge for strings of different lengths, == and /= for logical variables, 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.

Time Series

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

Unclassified

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.

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

Unit Testing

ForDebug: library designed for debugging Fortran code, especially within pure procedures, by Seyed Ali Ghasemi

Fortran Unit Testing Objects (Fortuno): flexible and extensible Fortran unit testing framework for testing serial, MPI-parallelized and coarray-parallelized applications, by Bálint Aradi

fortran_test_helper: library to provide assistance to testing, by Jason Christopherson

ForUnitTest: simple, object-oriented unit testing framework, by Seyed Ali Ghasemi.

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.

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.

Web Programming

ForCompile: library to access the Compiler Explorer API, by Seyed Ali Ghasemi

ForOpenAI: library to access the OpenAI 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

XML

FoXy: XML parser, from Fortran-FOSS-Programmers

last update: 2024-06-02 time elapsed (s): 477.27

About

List of projects that can be built with the Fortran Package Manager

License:MIT License


Languages

Language:Python 100.0%