- Abstract
Pack (assemble) an array summary from its double precision and
integer components.
- Required_Reading
DAF
- Brief_I/O
Variable I/O Description
-------- --- --------------------------------------------------
nd I Number of double precision components.
ni I Number of integer components.
dc I Double precision components.
ic I Integer components.
sum O Array summary.
- Detailed_Input
nd is the number of double precision components in
the summary to be packed.
ni is the number of integer components in the summary.
dc are the double precision components of the summary.
ic are the integer components of the summary.
- Detailed_Output
sum is an array summary containing the components in `dc'
and `ic'. This identifies the contents and location of
a single array within a DAF.
- Parameters
None.
- Particulars
The components of array summaries are packed into double
precision arrays for reasons outlined in [1]. Two routines,
dafps_c (pack summary) and dafus_c (unpack summary) are provided
for packing and unpacking summaries.
The total size of the summary is
(NI - 1)
ND + -------- + 1
2
double precision words (where ND, NI are nonnegative).
- Examples
1) Replace the body ID code -999 with -1999 in every descriptor
of an SPK file.
#include <SpiceUsr.h>
int main ( int argc, char **argv )
{
#define ND 2
#define NI 6
#define DSCSIZ 5
#define NEWCODE ( -1999 )
#define OLDCODE ( -999 )
SpiceBoolean found;
SpiceInt handle;
SpiceInt ic [ NI ];
SpiceDouble dc [ ND ];
SpiceDouble sum [ DSCSIZ ];
/.
Open for writing the SPK file specified on the command line.
./
dafopw_c ( argv[1], &handle );
/.
Search the file in forward order.
./
dafbfs_c ( handle );
daffna_c ( &found );
while ( found )
{
/.
Fetch and unpack the descriptor (aka summary)
of the current segment.
./
dafgs_c ( sum );
dafus_c ( sum, ND, NI, dc, ic );
/.
Replace ID codes if necessary.
./
if ( ic[0] == OLDCODE )
{
ic[0] = NEWCODE;
}
if ( ic[1] == OLDCODE )
{
ic[1] = NEWCODE;
}
/.
Re-pack the descriptor; replace the descriptor
in the file.
./
dafps_c ( ND, NI, dc, ic, sum );
dafrs_c ( sum );
/.
Find the next segment.
./
daffna_c ( &found );
}
/.
Close the file.
./
dafcls_c ( handle );
return ( 0 );
}
- Restrictions
None.
- Exceptions
Error free.
1) If ND is zero or negative, no DP components are stored.
2) If NI is zero or negative, no integer components are stored.
3) If the total size of the summary is greater than 125 double
precision words, some components may not be stored.
- Files
None.
- Author_and_Institution
N.J. Bachman (JPL)
I.M. Underwood (JPL)
- Literature_References
None.
- Version
-CSPICE Version 1.0.0, 23-NOV-2004 (NJB)
- Index_Entries
pack daf summary
- Link to routine source