More recent, official version of SGP4 is available (https://celestrak.com/publications/AIAA/2006-6753/).
We should replace our internal FORTRAN-derived SGP4/SDP4-code with the code found above, as unmodified as possible. ~~~The C++-code seems to be C++ in name only, and is compilable using a C-compiler.~~~ The C++-code is very C-like, but not compilable using a C-compiler due to reference arguments.
The code seems to be reasonable (no global or static variables), and is public domain, so that we can remove the GPLv2-license for a large bulk of the code in libpredict.
Both input and output is contained in the same struct. We have clear separation between input in predict_orbital_elements and output in predict_orbit, so will need to do some massaging, but should not be a big deal.
More recent, official version of SGP4 is available (https://celestrak.com/publications/AIAA/2006-6753/).
We should replace our internal FORTRAN-derived SGP4/SDP4-code with the code found above, as unmodified as possible. ~~~The C++-code seems to be C++ in name only, and is compilable using a C-compiler.~~~ The C++-code is very C-like, but not compilable using a C-compiler due to reference arguments.
The code seems to be reasonable (no global or static variables), and is public domain, so that we can remove the GPLv2-license for a large bulk of the code in libpredict.
Both input and output is contained in the same struct. We have clear separation between input in predict_orbital_elements and output in predict_orbit, so will need to do some massaging, but should not be a big deal.