fortranpack: A Modern Fortran Numerical & Scientific Programming Package
This is an experiment. It is basically just a Fortran Package Manager fpm.toml
manifest file that uses the following packages:
Library | Info | Version | Description |
---|---|---|---|
argv-fortran | A better get_command_argument for Fortran |
||
bspline-fortran | Multidimensional B-Spline Interpolation of Data on a Regular Grid | ||
carlson-elliptic-integrals | Carlson symmetric forms of elliptic integrals | ||
conmax | Modern Fortran CONMAX Optimization Method for general nonlinearly constrained function minimization | ||
conmin | Modern Fortran CONMIN Optimization Method | ||
csv-fortran | Read and Write CSV Files Using Modern Fortran | ||
daglib | Directed Acyclic Graphs With Modern Fortran | ||
ddeabm | Modern Fortran implementation of the DDEABM Adams-Bashforth algorithm | ||
dop853 | Modern Fortran Edition of Hairer's DOP853 ODE Solver | ||
finterp | Multidimensional (1D-6D) Linear and Nearest-Neighbor Interpolation with Modern Fortran | ||
fortran-mach | Modern Fortran Machine Constants Module (r1mach, d1mach, i1mach) | ||
fortran-search-and-sort | Searching and sorting with modern Fortran | ||
json-fortran | A Modern Fortran JSON API | ||
lbfgsb | Modern Fortran Refactoring of L-BFGS-B Nonlinear Optimization Code | ||
mersenne-twister-fortran | Mersenne Twister pseudorandom number generator for Fortran | ||
nlesolver-fortran | Nonlinear Equation Solver with Modern Fortran | ||
NumDiff | Modern Fortran Numerical Differentiation Library | ||
optgra | Modern Fortran edition of OPTGRA optimization algorithm from ESA | ||
pchip | Modern Fortran Piecewise Cubic Hermite Interpolation Package | ||
pikaia | Modern Fortran Edition of the Pikaia Genetic Algorithm | ||
polyroots-fortran | Modern Fortran library for finding the roots of real and complex polynomial equations | ||
popen-fortran | Simple Fortran module for popen | ||
psqp | Modern Fortran Edition of PSQP (Sequential quadratic programming algorithm) | ||
pyplot-fortran | For generating plots from Fortran using Python's matplotlib.pyplot |
||
quadpack | Modern Fortran QUADPACK Library for 1D numerical quadrature | ||
quadrature-fortran | 1D-6D Adaptive Gaussian Quadrature with Modern Fortran | ||
regridpack | Modern Fortran Edition of REGRIDPACK | ||
rklib | Fixed and variable-step Runge-Kutta solvers in Modern Fortran | ||
roots-fortran | A modern Fortran library for finding the roots of continuous scalar functions of a single real variable, using derivative-free methods. | ||
simulated-annealing | Simulated Annealing with Modern Fortran | ||
slsqp | Modern Fortran Edition of the SLSQP Optimizer | ||
splpak | Modernized SPLPAK library for multidimensional least-squares cubic spline fitting | ||
stringsort | Modern Fortran sorting routines for strings | ||
uuid-fortran | Fortran module for generating UUIDs |
To use this, just add this to your project's fpm.toml
file:
[dependencies]
fortranpack = { git="https://github.com/jacobwilliams/fortranpack.git" }
By default, the library is built with double precision (real64
) real values. Explicitly specifying the real kind can be done using the following preprocessor flags:
Preprocessor flag | Kind | Number of bytes |
---|---|---|
REAL32 |
real(kind=real32) |
4 |
REAL64 |
real(kind=real64) |
8 |
REAL128 |
real(kind=real128) |
16 |
For example, to build a quad precision version of the library, use:
fpm build --profile release --flag "-DREAL128"
- A Modern Fortran Scientific Programming Ecosystem, degenerateconic.com, Oct 12, 2022.
- Packs, degenerateconic.com, Feb 08, 2022.
- Fortran Standard Library