RSSAmplifier

Blog

Degenerate Conic

Algorithms • Modern Fortran Programming • Orbital Mechanics

degenerateconic.comRSS feed ↗15 posts

Latest posts

Minimization Without Derivatives

The FMIN function at Netlib is based on Richard Brent's classic localmin algorithm from [1]. The method uses a combination of golden section search and successive parabolic interpolation to compute the minimum of a 1D function without the necessity of evaluating any derivatives. There are Fortran 66 and ALGOL 60 …

Sign, Sign, Everywhere a Sign

Reference [1] describes a numerical method for computing the derivative of a 1D function, using Neville's algorithm to extrapolate from a sequence of simple polynomial approximations based on interpolating points within specific bounds of a given point. The original code in the published paper in 1980 was written in ALGOL …

Polynomial Roots

Consider the problem of finding all the roots of a polynomial . This involves solving the following equation: $$a_0 + a_1 x + a_2 x^2 + \cdots + a_n x^n = 0$$ This problem occurs in many different applications, such as computing atmospheric density in a spacecraft orbit simulation. In general, both the coefficients …

Converting Legacy C++ Code To Modern Fortran

"I am bound Upon a wheel of fire, that mine own tears Do scald like molten lead." - Shakespeare, "King Lear", Act IV, Scene 7 Typically , we see examples of poor saps who think that legacy Fortran codes must be converted to "modern" languages such as C++. Well, let's try to …

Fortran Compiler Updates (2026)

Fortran compiler development continues, with regular updates across a range of compilers. Some of the recent updates are summarized below: Intel Intel has announced an update to their Fortran compiler ( ifx ), which is now at version 2026.0. ifx replaced the venerable ifort compiler a few years ago, and fully …

Conda + Fortran

The dark ages of confusion about where to get and how to install a Fortran compiler for your platform are over. In recent years, along with the overall renaissance of the Fortran ecosystem, with the conda package manager and the conda-forge package repository, we now have have easy access to …

Root Finding

*From [A FORTRAN Coloring Book](https://archive.org/details/9780262610261) by Roger Kaufman (1978)* Finding the \(x\) where a scalar function \(f(x) = 0\) is a common problem in numerical programming . There are numerous applications to this. In orbital mechanics, for example, we may want to find the time at …

Fortran 2023 Unleashed

Fortran 2023 ( ISO/IEC 1539-1:2023 ) has been officially published. This replaces the previous standard (Fortran 2018). In a previous post I listed the updates that are in this release (then called "Fortran 202x"). It will be a while before we have fully-compliant Fortran 2023 compilers. In the latest update …

A Modern Fortran Scientific Programming Ecosystem

Image created with the assistance of NightCafe Creator . Historically, large general-purpose libraries have formed the core of the Fortran scientific ecosystem (e.g., SLATEC , or the various PACKS ). Unfortunately, as I have mentioned here before, these libraries were written in FORTRAN 77 (or earlier) and remained unmodified for decades. The …

Near Rectilinear Halo Orbits

*Some Earth-Moon NRHOs. From [Williams et al, 2017](https://www.researchgate.net/publication/322526659_Targeting_Cislunar_Near_Rectilinear_Halo_Orbits_for_Human_Space_Exploration).* I have mentioned the Circular Restricted Three-Body Problem (CR3BP) here a couple of times. Another type of periodic CR3BP orbit is the " near rectilinear " halo orbit (NRHO). These orbits are just the continuation of…

D1MACH Re-Revisited

[NightCafe](https://creator.nightcafe.studio/) AI generated image for "old computers" The classic Fortran routines r1mach (for single precision real numbers), d1mach (for double precision real numbers), and i1mach (for integers) were originally written in the mid-1970s for the purpose of returning basic machine or operating system dependent constants in …

Quadrature Quandary

In today's episode of "What where the Fortran dudes in the 1980s thinking?": consider the following code, which can be found in various forms in the two SLATEC quadrature routines dgaus8 and dqnc79 : K = I1MACH ( 14 ) ANIB = D1MACH ( 5 ) * K / 0.30102000D0 NBITS = ANIB Note that the "mach" routines (more …

The New Features of Fortran 202x

The glacially slow pace of Fortran language development continues! From the smoke-filled room of the Fortran Standards Committee, the next Fortran standard is coming along. It has not yet been given an official name but is currently referred to as "Fortran 202x" (so hopefully we will see it before the …

Packs

There are a lot of classic Fortran libraries from the 1970s to the early 1990s whose names end in "pack" (or, more specifically, "PACK"). I presume this stands for "package", and it seems to have been a common nomenclature for software libraries back in the day. Here is a list …

Modified Equinoctial Elements

The Orbital Coordinate Frame used for Equinoctial Elements (see Reference [5]) Last time , I mentioned an alternative orbital element set different from the classical elements. Modified equinoctial elements \((p,f,g,h,k,L)\) are another alternative that are applicable to all orbits and have nonsingular equations of motion (except …