My Errors !!

  1. 30 October 1997. In the ionospheric delay procedure the first line (calculation of the earth-centered angle) the constant should be 0.0137. The on-line version of the GPS SPS Signal Specification is here in error. (Thanks to Peter Dana)
  2. 16 November 1997. In the 'const' sections of my programs I defined:
    We = 7.292115E-5 {WGS-84 earth rotation rate} and
    Wedot = 7.2921151467E-5 {WGS 84 value of the earth's rotation rate}.
    The first constant is a left over from earlier programming exercises and can be removed (thanks to Nick Ryan).
  3. 28 January 1998. In the procedure 'satpos' the iteration limit of Ek, 1.0E-6, is too crude. Lower it to e.g. 1.0E-8 (sources involved: stdalone.pas, singldif.pas and gpsproc.pas) (Thanks to David Hindman).
  4. 23 March 1998. In the page describing the decoding of the navigation message I mentioned a word length of 32 bit and a parity length of 8 bit. This should be: a word length of 30 bit and a parity length of 6 bit (Thanks to Frank Yellin).
  5. 31 March 1998. In the page 'Decoding the GPS Navigation Message' a formatting error in the example 'Subframe 2,3 - ephemeris parameters' has been solved. (Thanks to Frank Yellin).
  6. 20 October 1998. In the page 'satpos.htm' the final line of the calculation steps is in error: change sin(Wc) into sin(i). (Thanks to Jean-Baptiste Gagnon).
  7. 9 November 1998. The page 'Decoding the GPS Navigation Message' contains has been corrected for two errors: in example subframe 1 - clock parameters word 9-3 should read EC not FC, and in example subframe 2,3 - Ephemeris parameters the computed value for W0 should be -5.82.....E-1 in stead of -5.82.....E-10 (Thanks to Gavin Andrews).
  8. 28 May 1999. I forgot to correct for week-crossovers in the clock correction in the sample program stdalone.pas. Change :
    dTclck := + clk[prn,5] + clk[prn,4] * (Ttr - clk[prn,2]) + clk[prn,3] * (Ttr - clk[prn,2]) * (Ttr - clk[prn,2]) + Trel - clk[prn,1];
    into :
    T := Ttr - clk[prn,2];
    {correct for week crossover}
    if T > 302400 then T := T - 604800;
    if T < -302400 then T := T + 604800;
    dTclck := + clk[prn,5] + clk[prn,4] * T + clk[prn,3] * T * T + Trel - clk[prn,1];
    on two places in main (Thanks to Gavin Andrews).
  9. 8 September 1999. In the page describing the decoding of the navigation message I made a typo in the navigation message table at the 'pageID' parameter: the join factor should be : b1 mod 2^6 , not b1 mod 2^5. (Thanks to Koh, Sung-ook)
  10. 4 January 2000. Garry Delbridge found an error in XYZ2LLA, the procedure in stdalone.pas to convert ECEF XYZ to Lat, Lo, Alt. Please download the new version of stdalone.pas.
  11. 28 February 2001. An error in stdalone.pas for the clock correction in pass 2 has been corrected a long time ago, but I forgot to update the internet version. Bence Takacs made me aware, thanks! Please dowload the most recent version of stdalone.pas.
  12. 28 May 2001. Niilo Sirola spotted a bug in the ionospheric delay procedure: the line
    if T >= 86400 then T := T - 86400 else if T < 0 then T := T + 86400 still allows T to be outside the interval 0 <= T < 86400.
    A correct implementation is:
    while T > =86400 do T := T - 86400 else while T < 0 do T := T + 86400

Back to software index