Degenerate Conic

Algorithms • Modern Fortran Programming • Orbital Mechanics

About

fortran2

My name is Jacob and I sometimes write software for NASA. This is my personal blog. All opinions expressed here are my own.

Contact Info

  • Email: jacob [at] degenerateconic [dot] com

Projects

fortran2

I maintain several open source projects for modern, object-oriented Fortran (i.e., Fortran 2003/2008). All of these have BSD-style licenses, and are hosted on GitHub:

Catagory Library Description Release
Interpolation bspline-fortran 1D-6D B-Spline Interpolation GitHub release
Interpolation regridpack 1D-4D linear and cubic interpolation GitHub release
Interpolation finterp 1D-6D Linear Interpolation GitHub release
Interpolation PCHIP Piecewise Cubic Hermite Interpolation Package GitHub release
Interpolation splpak Multidimensional least-squares cubic spline fitting GitHub release
Plotting pyplot-fortran Make plots from Fortran using Matplotlib GitHub release
File I/O json-fortran Read and write JSON files GitHub release
File I/O csv-fortran Read and write CSV Files (formerly named fortran-csv-module) GitHub release
Optimization slsqp SLSQP Optimizer GitHub release
Optimization fmin Derivative free 1D function minimizer GitHub release
Optimization pikaia Pikaia Genetic Algorithm GitHub release
Optimization simulated-annealing Simulated Annealing Algorithm GitHub release
Optimization lbfgsb L-BFGS-B Nonlinear Optimizater GitHub release
One Dimensional Root-Finding roots-fortran Roots of continuous scalar functions of a single real variable, using derivative-free methods GitHub release
Polynomial Roots polyroots-fortran Root finding for real and complex polynomial equations GitHub release
Nonlinear equations nlesolver-fortran Nonlinear Equation Solver GitHub release
Linear Equations LSQR Sparse linear systems solver GitHub release
Linear Equations lusol LU factors of a square or rectangular sparse matrix GitHub release
Ordinary Differential Equations dop853 An explicit Runge-Kutta method of order 8(5,3) GitHub release
Ordinary Differential Equations ddeabm DDEABM Adams-Bashforth algorithm GitHub release
Ordinary Differential Equations rklib Suite of fixed and variable-step Runge-Kutta solvers GitHub release
Numerical Differentiation NumDiff Numerical differentiation with finite differences GitHub release
Numerical integration quadpack Modernized QUADPACK Library for 1D numerical quadrature GitHub release
Numerical integration quadrature-fortran 1D-6D Adaptive Gaussian Quadrature GitHub release
Random numbers mersenne-twister-fortran Mersenne Twister pseudorandom number generator GitHub release
Astrodynamics Fortran-Astrodynamics-Toolkit Modern Fortran Library for Astrodynamics GitHub release
Astrodynamics astro-fortran Standard models used in fundamental astronomy GitHub release
Geodesy geodesic-fortran Geodesic routines GitHub release
Graph Theory daglib Directed Acyclic Graphs GitHub release
System popen-fortran Simple module for popen GitHub release
System fortran-mach Machine Constants GitHub release

Also check out the full list of my GitHub projects.

Publications

Selected conference papers, journal articles, etc.

Technical notes

  • LVLH Transformations -- This technical note derives the equations for transformation of state vectors to and from a Local Vertical Local Horizontal (LVLH) frame. An implementation of the algorithms in Fortran is also included.

See also

Copyright and License Info

Unless otherwise indicated, the original sourcecode on Degenerate Conic by Jacob Williams is licensed under the following license:

Copyright © 2014-2023, Jacob Williams All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

All other website content is Copyright © Jacob Williams.

Fortran Compilers

fortran

Fortran References

Books

  • E. Jorgensen, Introduction to Programming using Fortran 95/2003/2008, March 2018, Version 3.0.51
  • R. J. Hanson, Numerical Computing With Modern Fortran, SIAM-Society for Industrial and Applied Mathematics, 2013.
  • A. Markus, Modern Fortran in Practice, Cambridge University Press, 2012.
  • D. Rouson, J. Xia, X. Xu, Scientific Software Design: The Object-Oriented Way, Cambridge University Press, 2011.
  • M. Metcalf, J. Reid, M. Cohen, Modern Fortran Explained, Oxford University Press, 2011.
  • N. S. Clerman, W. Spector, Modern Fortran: Style and Usage, Cambridge University Press, 2011.
  • G. Hager, G. Wellein, Introduction to High Performance Computing for Scientists and Engineers, CRC Press, 2011.
  • R. A. Vowels, Algorithms and Data Structures in F and Fortran, Unicomp, 1998.

Articles

Websites

Forums

Fortran Standards

Fortran Software

Fortran Build & Documentation Tools

  • foraytool (An advanced build tool for Fortran developers)
  • FoBiS (Fortran projects building system for poor men)
  • FORD (Automatically generates FORtran Documentation from comments within the code)
  • The Meson Build system an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible
  • Fortran Package Manager a package manager and build system for Fortran.

Other Programming Resources

General Scientific Software

Other Interesting Blogs

Other References