Fortran library for Geodesics  2.0
Change log
  • Version 2.0 (released 2022-04-21)
    • This is a major reorganization with the Fortran library put into its own git repository, https://github.com/geographiclib/geographiclib-fortran. Despite this, there are only reasonably minor changes to the library itself.
    • Fix bug where the solution of the inverse geodesic problem with φ1 = 0 and φ2 = nan was treated as equatorial.
    • More careful treatment of ±0° and ±180°.
      • These behave consistently with taking the limits
        • ±0 means ±ε as ε → 0+
        • ±180 means ±(180 − ε) as ε → 0+
      • As a consequence, azimuths of +0° and +180° are reckoned to be east-going, as far as tracking the longitude with the unroll* flag set and the area goes, while azimuths −0° and −180° are reckoned to be west-going.
      • When computing longitude differences, if λ2 − λ1 = ±180° (mod 360°), then the sign is picked depending on the sign of the difference.
      • The normal range for returned longitudes and azimuths is [−180°, 180°].
      • A separate test suite geodsigntest has been added to check this treatment.
  • Version 1.52 (released 2021-06-22)
    • Be more aggressive in preventing negative s12 and m12 for short lines.
  • Version 1.50 (released 2019-09-24)
    • Allow arbitrarily complex polygons in area. In the case of self-intersecting polygons the area is accumulated "algebraically", e.g., the areas of the 2 loops in a figure-8 polygon will partially cancel.
  • Version 1.49 (released 2017-10-05)
    • Fix code formatting and add two tests.
  • Version 1.48 (released 2017-04-09)
    • Change default range for longitude and azimuth to (−180°, 180°] (instead of [−180°, 180°)).
  • Version 1.47 (released 2017-02-15)
    • Improve accuracy of area calculation (fixing a flaw introduced in version 1.46).
  • Version 1.46 (released 2016-02-15)
    • More accurate inverse solution when longitude difference is close to 180°.
  • Version 1.45 (released 2015-09-30)
    • The solution of the inverse problem now correctly returns NaNs if one of the latitudes is a NaN.
    • Include a test suite that can be run with "make test" after configuring with cmake.
    • The library now treats latitudes outside the range [−90°, 90°] as NaNs; so the sample programs no longer check for legal values of latitude.
  • Version 1.44 (released 2015-08-14)
    • Improve accuracy of calculations by evaluating trigonometric functions more carefully and replacing the series for the reduced length with one with a smaller truncation error.
    • The allowed ranges for longitudes and azimuths is now unlimited; it used to be [−540°, 540°).
    • The sample programs, geoddirect and geodinverse, enforce the restriction of latitude to [−90°, 90°].
    • The inverse calculation sets s12 to zero for coincident points at pole (instead of returning a tiny quantity).