corner corner
corner corner
spaces
corner spaces corner corner spaces corner
 

Prediction Centers

Consolidated Prediction Format (CPF)

CPF Documentation

CPF Sample Code

CPF Errata

Official Satellite Names

Mission Priorities

Dynamic Priorities

Prediction Survey

Historical TIRV Format

Maneuver Procedure

Drag Function

Time Bias Functions

Realtime Time Bias

   

CPF Errata

(as of Friday, November 04, 2011)

This page is used to accumlate errata/changes to the CPF documents and source code. It will be updated when needed.


Issue #: 2011-01

Date: 27 October 2011
Component
: sample source code
Version: 1.01a
Routine:cpf_sched/cpf_split.f
Problem:
Did not handle variable time spans properly when time span in record H2 was set to 0.
Impact:
Variable time spans between ephemeris entries, e.g. Radioastron
Source: rlr
Change:
Changes to cpf_split.f:
Replace line 150:

 DO jj = 1,nv*ephsep/60

with:

       ift= int((jdi(nv)- jdi(1) + (jdf(nv)- jdf(1)))*1440.d0)
 CC    DO jj = 1,nv*ephsep/60

DO jj = 1,ift

After line 54 add:

 integer ift

Issue #: 2010-2

Date: 12 April 2010
Component
: sample source code
Version: 1.01a
Routines: cpf_sched/schedule.cr
Problem: Array overflow due to a character string being too short.
Impact: Could potentially cause a segmentation fault.
Source:Thanks to Martin Ettl <ettl.martin@gmx.de> for identifying this problem.
Changes to schedule.c.c:
Change lines 26
from

char chr[3], fquit, ans,header1[256], header2[256], tar[25][2],  tarin[2];
to
char chr[4], fquit, ans,header1[256], header2[256], tar[25][2],  tarin[2];

Issue #: 2010-1

Date: 12 April 2010
Component
: sample source code
Version: 1.01a
Routines: cpf_llr_c/predpkg.c
Problem:Appears to be array out of bounds in routine rotmat as detemined by cppcheck. (The third element of 2-element array "a" is referenced. However, this routine was produced by f2c, which decrements the array address earlier in the routine.)
Impact: None, except giving the impression of a problem.
Source:Thanks to Martin Ettl <ettl.martin@gmx.de> for identifying this situation.
Optional changes to predpkg.c:
Change line 1143
from

 --a;

to

/*  --a; */
and lines 1156-1157:
from
a1 = ione * a[1];
adot = ione * a[2];

to

a1 = ione * a[0];
adot = ione * a[1];

Issue #: 2009-3

Date: 11 June 2009
Component
: sample source code
Version: 1.01a
Routines: cpf_inter.c and cpf_inter.for
Problem: Wrong units shown in documentation
Source: Thanks to Paul Liptack (Paul.Liptack @ boeing.com) for identifying these problems.
Changes to cpf_inter.c:
Change lines 35-36
from

CC              DIFAZI   : POINT-BEHIND (AZIMUTH,   ARC SECONDS)   R*8
CC              DIFELE   : POINT-BEHIND (ELEVATION, ARC SECONDS)   R*8
to
CC              DIFAZI   : POINT-BEHIND (AZIMUTH,   DEGREES)       R*8
CC              DIFELE   : POINT-BEHIND (ELEVATION, DEGREES)       R*8
Changes to cpf_inter.for:
Change line s 38-39
from
CC              DIFAZI   : POINT-BEHIND (AZIMUTH,   ARC SECONDS)   R*8
CC              DIFELE   : POINT-BEHIND (ELEVATION, ARC SECONDS)   R*8
to
CC              DIFAZI   : POINT-BEHIND (AZIMUTH,   DEGREES)       R*8
CC              DIFELE   : POINT-BEHIND (ELEVATION, DEGREES)       R*8

Issue #: 2009-2

Date: 11 June 2009
Component
: sample source code
Version: 1.01a
Routines: cpf_inter.c and cpf_inter.for
Problem:Outbound (or instantaneous) (idir = 0 or 1) records must occur before inbound (idir=2) records or the index (nv*) will be wrong and could cause a program crash or unexpected results.
Source: Thanks to Paul Liptack (Paul.Liptack @ boeing.com) for identifying these problems.
Impact: Minor. Only LLR currently uses out- and in-bound records.No one uses inbound-only records at this time.
Changes: None yet. Prediction producer must currently prevent this out-of-sequence situation. Errata will be updated when fix to software is developed.


Issue #: 2009-1

Date: 11 June 2009
Component
: sample source code
Routines: ephinit.c
Problem: Wrong indices used in assignment statements
Source: Thanks to Paul Liptack (Paul.Liptack @ boeing.com) for identifying these problems.
Impact: minimal. Offset records (50) are not currently used and the outbound and inbound relativity offsets (c12 and c23) agree to better than a nsec for the moon.
Changes to ephinit.c:
Change line 286
from

             ephi.c23[ephi.nv] = -ephi.c12[ephi.nv];
to
             ephi.c23[ephi.nv] = -ephi.c23[ephi.nv];
Change lines 321-324
from
             /* In case there is not back vector */
             ephi.offsetbackv[0][ephi.nv] = -ephi.offsetoutv[0][ephi.nv];
             ephi.offsetbackv[1][ephi.nv] = -ephi.offsetoutv[1][ephi.nv];
             ephi.offsetbackv[2][ephi.nv] = -ephi.offsetoutv[2][ephi.nv];
to
             /* In case there is not back vector */
             ephi.offsetbackv[0][ephi.nvoff] = -ephi.offsetoutv[0][ephi.nvoff];
             ephi.offsetbackv[1][ephi.nvoff] = -ephi.offsetoutv[1][ephi.nvoff];
             ephi.offsetbackv[2][ephi.nvoff] = -ephi.offsetoutv[2][ephi.nvoff];
Change lines 328-332
from
             sscanf (&ephstr[3],
                "%d %d %lf %lf %lf %lf", &idir,
                &mjd, &sod, &ephi.offsetbackv[0][ephi.nv],
                &ephi.offsetbackv[1][ephi.nv],
                &ephi.offsetbackv[2][ephi.nv]);
to
             sscanf (&ephstr[3],
                "%d %d %lf %lf %lf %lf", &idir,
                &mjd, &sod, &ephi.offsetbackv[0][ephi.nvoff],
                &ephi.offsetbackv[1][ephi.nvoff],
                &ephi.offsetbackv[2][ephi.nvoff]);
 

Responsible Government Official: Carey Noll
NASA's Privacy Policy and Important Notices

Send us your comments

 
corner spaces corner corner spaces corner