Add Spice as a submodule

This commit is contained in:
Alexander Bock
2016-07-19 15:03:23 +02:00
parent a244defdbc
commit eeb20d2cb7
37 changed files with 10 additions and 25872 deletions

5
.gitmodules vendored
View File

@@ -3,4 +3,7 @@
url = https://github.com/OpenSpace/Ghoul.git
[submodule "modules/kameleon/ext/kameleon"]
path = modules/kameleon/ext/kameleon
url = https://github.com/OpenSpace/Kameleon.git
url = https://github.com/OpenSpace/Kameleon.git
[submodule "ext/spice"]
path = ext/spice
url = https://github.com/OpenSpace/Spice.git

1
ext/spice Submodule

Submodule ext/spice added at 283112bc20

View File

@@ -1,155 +0,0 @@
/*
-Header_File SpiceCK.h ( CSPICE CK definitions )
-Abstract
Perform CSPICE definitions to support CK wrapper interfaces.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines types that may be referenced in
application code that calls CSPICE CK functions.
Typedef
=======
Name Description
---- ----------
SpiceCK05Subtype Typedef for enum indicating the
mathematical representation used
in an CK type 05 segment. Possible
values and meanings are:
C05TP0:
Hermite interpolation, 8-
element packets containing
q0, q1, q2, q3,
dq0/dt, dq1/dt, dq2/dt dq3/dt
where q0, q1, q2, q3 represent
quaternion components and dq0/dt,
dq1/dt, dq2/dt, dq3/dt represent
quaternion time derivative components.
Quaternions are unitless. Quaternion
time derivatives have units of
1/second.
C05TP1:
Lagrange interpolation, 4-
element packets containing
q0, q1, q2, q3,
where q0, q1, q2, q3 represent
quaternion components. Quaternion
derivatives are obtained by
differentiating interpolating
polynomials.
C05TP2:
Hermite interpolation, 14-
element packets containing
q0, q1, q2, q3,
dq0/dt, dq1/dt, dq2/dt dq3/dt,
av0, av1, av2,
dav0/dt, dav1/dt, dav2/dt
where q0, q1, q2, q3 represent
quaternion components and dq0/dt,
dq1/dt, dq2/dt, dq3/dt represent
quaternion time derivative components,
av0, av1, av2 represent angular
velocity components, and
dav0/dt, dav1/dt, dav2/dt represent
angular acceleration components.
C05TP3:
Lagrange interpolation, 7-
element packets containing
q0, q1, q2, q3,
av0, av1, av2
where q0, q1, q2, q3 represent
quaternion components and
av0, av1, av2 represent angular
velocity components.
Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 20-AUG-2002 (NJB)
*/
#ifndef HAVE_SPICE_CK_H
#define HAVE_SPICE_CK_H
/*
CK type 05 subtype codes:
*/
enum _SpiceCK05Subtype { C05TP0, C05TP1, C05TP2, C05TP3 };
typedef enum _SpiceCK05Subtype SpiceCK05Subtype;
#endif

View File

@@ -1,441 +0,0 @@
/*
-Header_File SpiceCel.h ( CSPICE Cell definitions )
-Abstract
Perform CSPICE definitions for the SpiceCell data type.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
CELLS
-Particulars
This header defines structures, macros, and enumerated types that
may be referenced in application code that calls CSPICE cell
functions.
CSPICE cells are data structures that implement functionality
parallel to that of the cell abstract data type in SPICELIB. In
CSPICE, a cell is a C structure containing bookkeeping information,
including a pointer to an associated data array.
For numeric data types, the data array is simply a SPICELIB-style
cell, including a valid control area. For character cells, the data
array has the same number of elements as the corresponding
SPICELIB-style cell, but the contents of the control area are not
maintained, and the data elements are null-terminated C-style
strings.
CSPICE cells should be declared using the declaration macros
provided in this header file. See the table of macros below.
Structures
==========
Name Description
---- ----------
SpiceCell Structure containing CSPICE cell metadata.
The members are:
dtype: Data type of cell: character,
integer, or double precision.
dtype has type
SpiceCellDataType.
length: For character cells, the
declared length of the
cell's string array.
size: The maximum number of data
items that can be stored in
the cell's data array.
card: The cell's "cardinality": the
number of data items currently
present in the cell.
isSet: Boolean flag indicating whether
the cell is a CSPICE set.
Sets have no duplicate data
items, and their data items are
stored in increasing order.
adjust: Boolean flag indicating whether
the cell's data area has
adjustable size. Adjustable
size cell data areas are not
currently implemented.
init: Boolean flag indicating whether
the cell has been initialized.
base: is a void pointer to the
associated data array. base
points to the start of the
control area of this array.
data: is a void pointer to the
first data slot in the
associated data array. This
slot is the element following
the control area.
ConstSpiceCell A const SpiceCell.
Declaration Macros
==================
Name Description
---- ----------
SPICECHAR_CELL ( name, size, length ) Declare a
character CSPICE
cell having cell
name name,
maximum cell
cardinality size,
and string length
length. The
macro declares
both the cell and
the associated
data array. The
name of the data
array begins with
"SPICE_".
SPICEDOUBLE_CELL ( name, size ) Like SPICECHAR_CELL,
but declares a
double precision
cell.
SPICEINT_CELL ( name, size ) Like
SPICECHAR_CELL,
but declares an
integer cell.
Assignment Macros
=================
Name Description
---- ----------
SPICE_CELL_SET_C( item, i, cell ) Assign the ith
element of a
character cell.
Arguments cell
and item are
pointers.
SPICE_CELL_SET_D( item, i, cell ) Assign the ith
element of a
double precision
cell. Argument
cell is a
pointer.
SPICE_CELL_SET_I( item, i, cell ) Assign the ith
element of an
integer cell.
Argument cell is
a pointer.
Fetch Macros
==============
Name Description
---- ----------
SPICE_CELL_GET_C( cell, i, lenout, item ) Fetch the ith
element from a
character cell.
Arguments cell
and item are
pointers.
Argument lenout
is the available
space in item.
SPICE_CELL_GET_D( cell, i, item ) Fetch the ith
element from a
double precision
cell. Arguments
cell and item are
pointers.
SPICE_CELL_GET_I( cell, i, item ) Fetch the ith
element from an
integer cell.
Arguments cell
and item are
pointers.
Element Pointer Macros
======================
Name Description
---- ----------
SPICE_CELL_ELEM_C( cell, i ) Macro evaluates
to a SpiceChar
pointer to the
ith data element
of a character
cell. Argument
cell is a
pointer.
SPICE_CELL_ELEM_D( cell, i ) Macro evaluates
to a SpiceDouble
pointer to the
ith data element
of a double
precision cell.
Argument cell is
a pointer.
SPICE_CELL_ELEM_I( cell, i ) Macro evaluates
to a SpiceInt
pointer to the
ith data element
of an integer
cell. Argument
cell is a
pointer.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 22-AUG-2002 (NJB)
*/
#ifndef HAVE_SPICE_CELLS_H
#define HAVE_SPICE_CELLS_H
/*
Data type codes:
*/
typedef enum _SpiceDataType SpiceCellDataType;
/*
Cell structure:
*/
struct _SpiceCell
{ SpiceCellDataType dtype;
SpiceInt length;
SpiceInt size;
SpiceInt card;
SpiceBoolean isSet;
SpiceBoolean adjust;
SpiceBoolean init;
void * base;
void * data; };
typedef struct _SpiceCell SpiceCell;
typedef const SpiceCell ConstSpiceCell;
/*
SpiceCell control area size:
*/
#define SPICE_CELL_CTRLSZ 6
/*
Declaration macros:
*/
#define SPICECHAR_CELL( name, size, length ) \
\
static SpiceChar SPICE_CELL_##name[SPICE_CELL_CTRLSZ + size][length]; \
\
static SpiceCell name = \
\
{ SPICE_CHR, \
length, \
size, \
0, \
SPICETRUE, \
SPICEFALSE, \
SPICEFALSE, \
(void *) &(SPICE_CELL_##name), \
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
#define SPICEDOUBLE_CELL( name, size ) \
\
static SpiceDouble SPICE_CELL_##name [SPICE_CELL_CTRLSZ + size]; \
\
static SpiceCell name = \
\
{ SPICE_DP, \
0, \
size, \
0, \
SPICETRUE, \
SPICEFALSE, \
SPICEFALSE, \
(void *) &(SPICE_CELL_##name), \
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
#define SPICEINT_CELL( name, size ) \
\
static SpiceInt SPICE_CELL_##name [SPICE_CELL_CTRLSZ + size]; \
\
static SpiceCell name = \
\
{ SPICE_INT, \
0, \
size, \
0, \
SPICETRUE, \
SPICEFALSE, \
SPICEFALSE, \
(void *) &(SPICE_CELL_##name), \
(void *) &(SPICE_CELL_##name[SPICE_CELL_CTRLSZ]) }
/*
Access macros for individual elements:
*/
/*
Data element pointer macros:
*/
#define SPICE_CELL_ELEM_C( cell, i ) \
\
( ( (SpiceChar *) (cell)->data ) + (i)*( (cell)->length ) )
#define SPICE_CELL_ELEM_D( cell, i ) \
\
( ( (SpiceDouble *) (cell)->data )[(i)] )
#define SPICE_CELL_ELEM_I( cell, i ) \
\
( ( (SpiceInt *) (cell)->data )[(i)] )
/*
"Fetch" macros:
*/
#define SPICE_CELL_GET_C( cell, i, lenout, item ) \
\
{ \
SpiceInt nBytes; \
\
nBytes = brckti_c ( (cell)->length, 0, (lenout-1) ) \
* sizeof ( SpiceChar ); \
\
memmove ( (item), SPICE_CELL_ELEM_C((cell), (i)), nBytes ); \
\
item[nBytes] = NULLCHAR; \
}
#define SPICE_CELL_GET_D( cell, i, item ) \
\
( (*item) = ( (SpiceDouble *) (cell)->data)[i] )
#define SPICE_CELL_GET_I( cell, i, item ) \
\
( (*item) = ( (SpiceInt *) (cell)->data)[i] )
/*
Assignment macros:
*/
#define SPICE_CELL_SET_C( item, i, cell ) \
\
{ \
SpiceChar * sPtr; \
SpiceInt nBytes; \
\
nBytes = brckti_c ( strlen(item), 0, (cell)->length - 1 ) \
* sizeof ( SpiceChar ); \
\
sPtr = SPICE_CELL_ELEM_C((cell), (i)); \
\
memmove ( sPtr, (item), nBytes ); \
\
sPtr[nBytes] = NULLCHAR; \
}
#define SPICE_CELL_SET_D( item, i, cell ) \
\
( ( (SpiceDouble *) (cell)->data)[i] = (item) )
#define SPICE_CELL_SET_I( item, i, cell ) \
\
( ( (SpiceInt *) (cell)->data)[i] = (item) )
/*
The enum SpiceTransDir is used to indicate language translation
direction: C to Fortran or vice versa.
*/
enum _SpiceTransDir { C2F = 0, F2C = 1 };
typedef enum _SpiceTransDir SpiceTransDir;
#endif

View File

@@ -1,448 +0,0 @@
/*
-Header_File SpiceEK.h ( CSPICE EK-specific definitions )
-Abstract
Perform CSPICE EK-specific definitions, including macros and user-
defined types.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines macros, enumerated types, structures, and
typedefs that may be referenced in application code that calls CSPICE
EK functions.
Macros
======
General limits
--------------
Name Description
---- ----------
SPICE_EK_MXCLSG Maximum number of columns per segment.
SPICE_EK_TYPLEN Maximum length of a short string
indicating a data type (one of
{"CHR", "DP", "INT", "TIME"}). Such
strings are returned by some of the
Fortran SPICELIB EK routines, hence also
by their f2c'd counterparts.
Sizes of EK objects
-------------------
Name Description
---- ----------
SPICE_EK_CNAMSZ Maximum length of column name.
SPICE_EK_CSTRLN Length of string required to hold column
name.
SPICE_EK_TNAMSZ Maximum length of table name.
SPICE_EK_TSTRLN Length of string required to hold table
name.
Query-related limits
--------------------
Name Description
---- ----------
SPICE_EK_MAXQRY Maximum length of an input query. This
value is currently equivalent to
twenty-five 80-character lines.
SPICE_EK_MAXQSEL Maximum number of columns that may be
listed in the `SELECT clause' of a query.
SPICE_EK_MAXQTAB Maximum number of tables that may be
listed in the `FROM clause' of a query.
SPICE_EK_MAXQCON Maximum number of relational expressions
that may be listed in the `constraint
clause' of a query.
This limit applies to a query when it is
represented in `normalized form': that
is, the constraints have been expressed
as a disjunction of conjunctions of
relational expressions. The number of
relational expressions in a query that
has been expanded in this fashion may be
greater than the number of relations in
the query as orginally written. For
example, the expression
( ( A LT 1 ) OR ( B GT 2 ) )
AND
( ( C NE 3 ) OR ( D EQ 4 ) )
which contains 4 relational expressions,
expands to the equivalent normalized
constraint
( ( A LT 1 ) AND ( C NE 3 ) )
OR
( ( A LT 1 ) AND ( D EQ 4 ) )
OR
( ( B GT 2 ) AND ( C NE 3 ) )
OR
( ( B GT 2 ) AND ( D EQ 4 ) )
which contains eight relational
expressions.
SPICE_EK_MAXQJOIN Maximum number of tables that can be
joined.
SPICE_EK_MAXQJCON Maximum number of join constraints
allowed.
SPICE_EK_MAXQORD Maximum number of columns that may be
used in the `order-by clause' of a query.
SPICE_EK_MAXQTOK Maximum number of tokens in a query.
Tokens
are reserved words, column names,
parentheses, and values. Literal strings
and time values count as single tokens.
SPICE_EK_MAXQNUM Maximum number of numeric tokens in a
query.
SPICE_EK_MAXQCLN Maximum total length of character tokens
in a query.
SPICE_EK_MAXQSTR Maximum length of literal string values
allowed in queries.
Codes
-----
Name Description
---- ----------
SPICE_EK_VARSIZ Code used to indicate variable-size
objects. Usually this is used in a
context where a non-negative integer
indicates the size of a fixed-size object
and the presence of this code indicates a
variable-size object.
The value of this constant must match the
parameter IFALSE used in the Fortran
library SPICELIB.
Enumerated Types
================
Enumerated code values
----------------------
Name Description
---- ----------
SpiceEKDataType Codes for data types used in the EK
interface: character, double precision,
integer, and "time."
The values are:
{ SPICE_CHR = 0,
SPICE_DP = 1,
SPICE_INT = 2,
SPICE_TIME = 3 }
SpiceEKExprClass Codes for types of expressions that may
appear in the SELECT clause of EK
queries. Values and meanings are:
SPICE_EK_EXP_COL Selected item was a
column. The column
may qualified by a
table name.
SPICE_EK_EXP_FUNC Selected item was
a simple function
invocation of the
form
F ( <column> )
or else was
COUNT(*)
SPICE_EK_EXP_EXPR Selected item was a
more general
expression than
those shown above.
Numeric values are:
{ SPICE_EK_EXP_COL = 0,
SPICE_EK_EXP_FUNC = 1,
SPICE_EK_EXP_EXPR = 2 }
Structures
==========
EK API structures
-----------------
Name Description
---- ----------
SpiceEKAttDsc EK column attribute descriptor. Note
that this object is distinct from the EK
column descriptors used internally in
the EK routines; those descriptors
contain pointers as well as attribute
information.
The members are:
cclass: Column class code.
dtype: Data type code: has type
SpiceEKDataType.
strlen: String length. Applies to
SPICE_CHR type. Value is
SPICE_EK_VARSIZ for
variable-length strings.
size: Column entry size; this is
the number of array
elements in a column
entry. The value is
SPICE_EK_VARSIZ for
variable-size columns.
indexd: Index flag; value is
SPICETRUE if the column is
indexed, SPICEFALSE
otherwise.
nullok: Null flag; value is
SPICETRUE if the column
may contain null values,
SPICEFALSE otherwise.
SpiceEKSegSum EK segment summary. This structure
contains user interface level descriptive
information. The structure contains the
following members:
tabnam The name of the table to
which the segment belongs.
nrows The number of rows in the
segment.
ncols The number of columns in
the segment.
cnames An array of names of
columns in the segment.
Column names may contain
as many as SPICE_EK_CNAMSZ
characters. The array
contains room for
SPICE_EK_MXCLSG column
names.
cdescrs An array of column
attribute descriptors of
type SpiceEKAttDsc.
The array contains room
for SPICE_EK_MXCLSG
descriptors. The Ith
descriptor corresponds to
the column whose name is
the Ith element of the
array cnames.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 2.0.0 27-JUL-2002 (NJB)
Defined SpiceEKDataType using SpiceDataType. Removed declaration
of enum _SpiceEKDataType.
-CSPICE Version 1.0.0, 05-JUL-1999 (NJB)
Renamed _SpiceEKAttDsc member "class" to "cclass." The
former name is a reserved word in C++.
-CSPICE Version 1.0.0, 24-FEB-1999 (NJB)
*/
#ifndef HAVE_SPICE_EK_H
#define HAVE_SPICE_EK_H
/*
Constants
*/
/*
Sizes of EK objects:
*/
#define SPICE_EK_CNAMSZ 32
#define SPICE_EK_CSTRLN ( SPICE_EK_CNAMSZ + 1 )
#define SPICE_EK_TNAMSZ 64
#define SPICE_EK_TSTRLN ( SPICE_EK_TNAMSZ + 1 )
/*
Maximum number of columns per segment:
*/
#define SPICE_EK_MXCLSG 100
/*
Maximum length of string indicating data type:
*/
#define SPICE_EK_TYPLEN 4
/*
Query-related limits (see header for details):
*/
#define SPICE_EK_MAXQRY 2000
#define SPICE_EK_MAXQSEL 50
#define SPICE_EK_MAXQTAB 10
#define SPICE_EK_MAXQCON 1000
#define SPICE_EK_MAXQJOIN 10
#define SPICE_EK_MAXQJCON 100
#define SPICE_EK_MAXQORD 10
#define SPICE_EK_MAXQTOK 500
#define SPICE_EK_MAXQNUM 100
#define SPICE_EK_MAXQCLN SPICE_EK_MAXQRY
#define SPICE_EK_MAXQSTR 1024
/*
Code indicating "variable size":
*/
#define SPICE_EK_VARSIZ (-1)
/*
Data type codes:
*/
typedef SpiceDataType SpiceEKDataType;
/*
SELECT clause expression type codes:
*/
enum _SpiceEKExprClass{ SPICE_EK_EXP_COL = 0,
SPICE_EK_EXP_FUNC = 1,
SPICE_EK_EXP_EXPR = 2 };
typedef enum _SpiceEKExprClass SpiceEKExprClass;
/*
EK column attribute descriptor:
*/
struct _SpiceEKAttDsc
{ SpiceInt cclass;
SpiceEKDataType dtype;
SpiceInt strlen;
SpiceInt size;
SpiceBoolean indexd;
SpiceBoolean nullok; };
typedef struct _SpiceEKAttDsc SpiceEKAttDsc;
/*
EK segment summary:
*/
struct _SpiceEKSegSum
{ SpiceChar tabnam [SPICE_EK_TSTRLN];
SpiceInt nrows;
SpiceInt ncols;
SpiceChar cnames [SPICE_EK_MXCLSG][SPICE_EK_CSTRLN];
SpiceEKAttDsc cdescrs[SPICE_EK_MXCLSG]; };
typedef struct _SpiceEKSegSum SpiceEKSegSum;
#endif

View File

@@ -1,115 +0,0 @@
/*
-Header_File SpiceEll.h ( CSPICE Ellipse definitions )
-Abstract
Perform CSPICE definitions for the SpiceEllipse data type.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines structures and typedefs that may be referenced in
application code that calls CSPICE Ellipse functions.
Structures
==========
Name Description
---- ----------
SpiceEllipse Structure representing an ellipse in 3-
dimensional space.
The members are:
center: Vector defining ellipse's
center.
semiMajor: Vector defining ellipse's
semi-major axis.
semiMinor: Vector defining ellipse's
semi-minor axis.
The ellipse is the set of points
{X: X = center
+ cos(theta) * semiMajor
+ sin(theta) * semiMinor,
theta in [0, 2*Pi) }
ConstSpiceEllipse A const SpiceEllipse.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 04-MAR-1999 (NJB)
*/
#ifndef HAVE_SPICE_ELLIPSES
#define HAVE_SPICE_ELLIPSES
/*
Ellipse structure:
*/
struct _SpiceEllipse
{ SpiceDouble center [3];
SpiceDouble semiMajor [3];
SpiceDouble semiMinor [3]; };
typedef struct _SpiceEllipse SpiceEllipse;
typedef const SpiceEllipse ConstSpiceEllipse;
#endif

View File

@@ -1,141 +0,0 @@
/*
-Header_File SpiceErr.h ( CSPICE error handling definitions )
-Abstract
Perform CSPICE definitions for error handling APIs.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines constants that may be referenced in
application code that calls CSPICE error handling functions.
CONSTANTS
==========
Name Description
---- ----------
SPICE_ERROR_LMSGLN Maximum length of a long error message,
including the null terminator.
SPICE_ERROR_SMSGLN Maximum length of a short error message,
including the null terminator.
SPICE_ERROR_XMSGLN Maximum length of a short error
explanation message, including the null
terminator.
SPICE_ERROR_MODLEN Maximum length of a module name
appearing in the traceback message,
including the null terminator.
SPICE_ERROR_MAXMOD Maximum count of module names
appearing in the traceback message.
SPICE_ERROR_TRCLEN Maximum length of a traceback message,
including the null terminator.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 05-NOV-2013 (NJB)
*/
#ifndef HAVE_SPICE_ERROR_HANDLING
#define HAVE_SPICE_ERROR_HANDLING
/*
Local constants
*/
#define ARROWLEN 5
/*
Public constants
*/
/*
Long error message length, which is equal to
( 23 * 80 ) + 1
*/
#define SPICE_ERROR_LMSGLN 1841
/*
Short error message length:
*/
#define SPICE_ERROR_SMSGLN 26
/*
Short error message explanation length:
*/
#define SPICE_ERROR_XMSGLN 81
/*
Module name length for traceback entries:
*/
#define SPICE_ERROR_MODLEN 33
/*
Maximum module count for traceback string:
*/
#define SPICE_ERROR_MAXMOD 100
/*
Maximum length of traceback string returned
by qcktrc_c.
*/
#define SPICE_ERROR_TRCLEN ( ( SPICE_ERROR_MAXMOD \
* ( SPICE_ERROR_MODLEN-1 ) ) \
+ ( ARROWLEN \
* ( SPICE_ERROR_MAXMOD-1 ) ) \
+ 1 )
#endif

View File

@@ -1,193 +0,0 @@
/*
-Header_File SpiceFrm.h ( CSPICE frame subsystem definitions )
-Abstract
Perform CSPICE definitions for frame subsystem APIs.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
CK
FRAMES
PCK
-Particulars
This header defines constants that may be referenced in
application code that calls CSPICE frame subsystem APIs.
CONSTANTS
==========
Frame counts
------------
The following parameter are counts of built-in frames. These
parameters correspond to those defined in the SPICELIB Fortran
INCLUDE files
ninert.inc
nninrt.inc
Name Description
---- ----------
SPICE_NFRAME_NINERT Number of built-in inertial frames.
SPICE_NFRAME_NNINRT Number of built-in non-inertial frames.
Frame classes
-------------
The following parameters identify SPICE frame classes. These
parameters correspond to those defined in the SPICELIB Fortran
INCLUDE file frmtyp.inc. See the Frames Required Reading for a
detailed discussion of frame classes.
Name Description
---- ----------
SPICE_FRMTYP_INERTL an inertial frame that is listed in the
f2c'd routine chgirf_ and that requires
no external file to compute the
transformation from or to any other
inertial frame.
SPICE_FRMTYP_PCK is a frame that is specified relative
to some built-in, inertial frame (of
class SPICE_FRMTYP_INERTL) and that has
an IAU model that may be retrieved from
the PCK system via a call to the
routine tisbod_c.
SPICE_FRMTYP_CK is a frame defined by a C-kernel.
SPICE_FRMTYP_TK is a "text kernel" frame. These frames
are offset from their associated
"relative" frames by a constant
rotation.
SPICE_FRMTYP_DYN is a "dynamic" frame. These currently
are limited to parameterized frames
where the full frame definition depends
on parameters supplied via a frame
kernel.
SPICE_FRMTYP_ALL indicates any of the above classes.
This parameter is used in APIs that
fetch information about frames of a
specified class.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 23-MAY-2012 (NJB)
*/
#ifndef HAVE_SPICE_FRAME_DEFS
#define HAVE_SPICE_FRAME_DEFS
/*
Frame counts:
*/
/*
Number of built-in inertial frames. This number must be kept in
sync with that defined in the SPICELIB include file ninert.inc.
*/
#define SPICE_NFRAME_NINERT 21
/*
Number of built-in non-inertial frames. This number must be kept in
sync with that defined in the SPICELIB include file nninrt.inc.
*/
#define SPICE_NFRAME_NNINRT 105
/*
The frame class codes defined here are identical
to those used in SPICELIB.
*/
/*
Inertial, built-in frames:
*/
#define SPICE_FRMTYP_INERTL 1
/*
PCK frames:
*/
#define SPICE_FRMTYP_PCK 2
/*
CK frames:
*/
#define SPICE_FRMTYP_CK 3
/*
TK frames:
*/
#define SPICE_FRMTYP_TK 4
/*
Dynamic frames:
*/
#define SPICE_FRMTYP_DYN 5
/*
All frame classes:
*/
#define SPICE_FRMTYP_ALL ( -1 )
#endif

View File

@@ -1,341 +0,0 @@
/*
-Header_File SpiceGF.h ( CSPICE GF-specific definitions )
-Abstract
Perform CSPICE GF-specific definitions.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
GF
-Keywords
GEOMETRY
SEARCH
-Exceptions
None
-Files
None
-Particulars
This header defines macros that may be referenced in application
code that calls CSPICE GF functions.
Macros
======
Workspace parameters
--------------------
CSPICE applications normally don't declare workspace arguments
and therefore don't directly reference workspace size parameters.
However, CSPICE GF APIs dealing with numeric constraints
dynamically allocate workspace memory; the amount allocated
depends on the number of intervals the workspace windows can
hold. This amount is an input argument to the GF numeric quantity
APIs.
The parameters below are used to calculate the amount of memory
required. Each workspace window contains 6 double precision
numbers in its control area and 2 double precision numbers for
each interval it can hold.
Name Description
---- ----------
SPICE_GF_NWMAX Maximum number of windows required for
a user-defined workspace array.
SPICE_GF_NWDIST Number of workspace windows used by
gfdist_c and the underlying SPICELIB
routine GFDIST.
SPICE_GF_NWILUM Number of workspace windows used by
gfilum_c and the underlying SPICELIB
routine GFILUM.
SPICE_GF_NWSEP Number of workspace windows used by
gfsep_c and the underlying SPICELIB
routine GFSEP.
SPICE_GF_NWRR Number of workspace windows used by
gfrr_c and the underlying SPICELIB
routine GFRR.
SPICE_GF_NWPA Number of workspace windows used by
gfpa_c and the underlying SPICELIB
routine GFPA.
Field of view (FOV) parameters
------------------------------
Name Description
---- ----------
SPICE_GF_MAXVRT Maximum allowed number of boundary
vectors for a polygonal FOV.
SPICE_GF_CIRFOV Parameter identifying a circular FOV.
SPICE_GF_ELLFOV Parameter identifying a elliptical FOV.
SPICE_GF_POLFOV Parameter identifying a polygonal FOV.
SPICE_GF_RECFOV Parameter identifying a rectangular FOV.
SPICE_GF_SHPLEN Parameter specifying maximum length of
a FOV shape name.
SPICE_GF_MARGIN is a small positive number used to
constrain the orientation of the
boundary vectors of polygonal FOVs. Such
FOVs must satisfy the following
constraints:
1) The boundary vectors must be
contained within a right circular
cone of angular radius less than
than (pi/2) - MARGIN radians; in
other words, there must be a vector
A such that all boundary vectors
have angular separation from A of
less than (pi/2)-MARGIN radians.
2) There must be a pair of boundary
vectors U, V such that all other
boundary vectors lie in the same
half space bounded by the plane
containing U and V. Furthermore, all
other boundary vectors must have
orthogonal projections onto a plane
normal to this plane such that the
projections have angular separation
of at least 2*MARGIN radians from
the plane spanned by U and V.
MARGIN is currently set to 1.D-12.
Occultation parameters
----------------------
SPICE_GF_ANNULR Parameter identifying an "annular
occultation." This geometric condition
is more commonly known as a "transit."
The limb of the background object must
not be blocked by the foreground object
in order for an occultation to be
"annular."
SPICE_GF_ANY Parameter identifying any type of
occultation or transit.
SPICE_GF_FULL Parameter identifying a full
occultation: the foreground body
entirely blocks the background body.
SPICE_GF_PARTL Parameter identifying an "partial
occultation." This is an occultation in
which the foreground body blocks part,
but not all, of the limb of the
background body.
Target shape parameters
-----------------------
SPICE_GF_EDSHAP Parameter indicating a target object's
shape is modeled as an ellipsoid.
SPICE_GF_PTSHAP Parameter indicating a target object's
shape is modeled as a point.
SPICE_GF_RYSHAP Parameter indicating a target object's
"shape" is modeled as a ray emanating
from an observer's location. This model
may be used in visibility computations
for targets whose direction, but not
position, relative to an observer is
known.
SPICE_GF_SPSHAP Parameter indicating a target object's
shape is modeled as a point.
Search parameters
-----------------
These parameters affect the manner in which GF searches are
performed.
SPICE_GF_ADDWIN is a parameter used in numeric quantity
searches that use an equality
constraint. This parameter is used to
expand the confinement window (the
window over which the search is
performed) by a small amount at both
ends. This expansion accommodates the
case where a geometric quantity is equal
to a reference value at a boundary point
of the original confinement window.
SPICE_GF_CNVTOL is the default convergence tolerance
used by GF routines that don't support a
user-supplied tolerance value. GF
searches for roots will terminate when a
root is bracketed by times separated by
no more than this tolerance. Units are
seconds.
Configuration parameter
-----------------------
SPICE_GFEVNT_MAXPAR Parameter indicating the maximum number of
elements needed for the 'qnames' and 'q*pars'
arrays used in gfevnt_c.
SpiceChar qcpars[SPICE_GFEVNT_MAXPAR][LNSIZE];
SpiceDouble qdpars[SPICE_GFEVNT_MAXPAR];
SpiceInt qipars[SPICE_GFEVNT_MAXPAR];
SpiceBoolean qlpars[SPICE_GFEVNT_MAXPAR];
-Examples
None
-Restrictions
None.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
L.S. Elson (JPL)
-Version
-CSPICE Version 2.1.0, 23-FEB-2012 (NJB)
Added parameters:
SPICE_GF_NWILUM
SPICE_GF_NWRR
SPICE_GF_NWPA
-CSPICE Version 2.0.0, 23-JUN-2009 (NJB)
Added parameter for maximum length of FOV shape string.
-CSPICE Version 1.0.0, 11-MAR-2009 (NJB)
*/
#ifndef HAVE_SPICE_GF_H
#define HAVE_SPICE_GF_H
/*
See the Particulars section above for parameter descriptions.
*/
/*
Workspace parameters
*/
#define SPICE_GF_NWMAX 15
#define SPICE_GF_NWDIST 5
#define SPICE_GF_NWILUM 5
#define SPICE_GF_NWSEP 5
#define SPICE_GF_NWRR 5
#define SPICE_GF_NWPA 5
/*
Field of view (FOV) parameters
*/
#define SPICE_GF_MAXVRT 10000
#define SPICE_GF_CIRFOV "CIRCLE"
#define SPICE_GF_ELLFOV "ELLIPSE"
#define SPICE_GF_POLFOV "POLYGON"
#define SPICE_GF_RECFOV "RECTANGLE"
#define SPICE_GF_SHPLEN 10
#define SPICE_GF_MARGIN ( 1.e-12 )
/*
Occultation parameters
*/
#define SPICE_GF_ANNULR "ANNULAR"
#define SPICE_GF_ANY "ANY"
#define SPICE_GF_FULL "FULL"
#define SPICE_GF_PARTL "PARTIAL"
/*
Target shape parameters
*/
#define SPICE_GF_EDSHAP "ELLIPSOID"
#define SPICE_GF_PTSHAP "POINT"
#define SPICE_GF_RYSHAP "RAY"
#define SPICE_GF_SPSHAP "SPHERE"
/*
Search parameters
*/
#define SPICE_GF_ADDWIN 1.0
#define SPICE_GF_CNVTOL 1.e-6
/*
Configuration parameters.
*/
#define SPICE_GFEVNT_MAXPAR 10
#endif
/*
End of header file SpiceGF.h
*/

View File

@@ -1,147 +0,0 @@
/*
-Header_File SpiceOccult.h ( CSPICE Occultation specific definitions )
-Abstract
Perform CSPICE occultation specific definitions.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Keywords
OCCULTATION
GEOMETRY
ELLIPSOID
-Exceptions
None
-Files
None
-Particulars
The following integer codes indicate the geometric relationship
of the three bodies.
The meaning of the sign of each code is given below.
Code sign Meaning
--------- ------------------------------
> 0 The second ellipsoid is
partially or fully occulted
by the first.
< 0 The first ellipsoid is
partially of fully
occulted by the second.
= 0 No occultation.
The meanings of the codes are given below. The variable names
indicate the type of occultation and which target is in the back.
For example, SPICE_OCCULT_TOTAL1 represents a total occultation in which
the first target is in the back (or occulted by) the second target.
Name Code Meaning
------ ----- ------------------------------
SPICE_OCCULT_TOTAL1 -3 Total occultation of first
target by second.
SPICE_OCCULT_ANNLR1 -2 Annular occultation of first
target by second. The second
target does not block the limb
of the first.
SPICE_OCCULT_PARTL1 -1 Partial occultation of first
target by second target.
SPICE_OCCULT_NOOCC 0 No occultation or transit: both
objects are completely visible
to the observer.
SPICE_OCCULT_PARTL2 1 Partial occultation of second
target by first target.
SPICE_OCCULT_ANNLR2 2 Annular occultation of second
target by first.
SPICE_OCCULT_TOTAL2 3 Total occultation of second
target by first.
-Examples
None
-Restrictions
None.
-Literature_References
None.
-Author_and_Institution
S.C. Krening (JPL)
N.J. Bachman (JPL)
-Version
-CSPICE Version 1.0.0, 23-FEB-2012 (SCK)
*/
#ifndef HAVE_SPICE_OCCULT_H
#define HAVE_SPICE_OCCULT_H
/*
See the Particulars section above for parameter descriptions.
*/
/*
Occultation parameters
*/
#define SPICE_OCCULT_TOTAL1 -3
#define SPICE_OCCULT_ANNLR1 -2
#define SPICE_OCCULT_PARTL1 -1
#define SPICE_OCCULT_NOOCC 0
#define SPICE_OCCULT_PARTL2 1
#define SPICE_OCCULT_ANNLR2 2
#define SPICE_OCCULT_TOTAL2 3
#endif

View File

@@ -1,106 +0,0 @@
/*
-Header_File SpicePln.h ( CSPICE Plane definitions )
-Abstract
Perform CSPICE definitions for the SpicePlane data type.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines structures and typedefs that may be referenced in
application code that calls CSPICE Plane functions.
Structures
==========
Name Description
---- ----------
SpicePlane Structure representing a plane in 3-
dimensional space.
The members are:
normal: Vector normal to plane.
constant: Constant of plane equation
Plane =
{X: <normal,X> = constant}
ConstSpicePlane A const SpicePlane.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 04-MAR-1999 (NJB)
*/
#ifndef HAVE_SPICE_PLANES
#define HAVE_SPICE_PLANES
/*
Plane structure:
*/
struct _SpicePlane
{ SpiceDouble normal [3];
SpiceDouble constant; };
typedef struct _SpicePlane SpicePlane;
typedef const SpicePlane ConstSpicePlane;
#endif

View File

@@ -1,128 +0,0 @@
/*
-Header_File SpiceSPK.h ( CSPICE SPK definitions )
-Abstract
Perform CSPICE definitions to support SPK wrapper interfaces.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines types that may be referenced in
application code that calls CSPICE SPK functions.
Typedef
=======
Name Description
---- ----------
SpiceSPK18Subtype Typedef for enum indicating the
mathematical representation used
in an SPK type 18 segment. Possible
values and meanings are:
S18TP0:
Hermite interpolation, 12-
element packets containing
x, y, z, dx/dt, dy/dt, dz/dt,
vx, vy, vz, dvx/dt, dvy/dt, dvz/dt
where x, y, z represent Cartesian
position components and vx, vy, vz
represent Cartesian velocity
components. Note well: vx, vy, and
vz *are not necessarily equal* to the
time derivatives of x, y, and z.
This packet structure mimics that of
the Rosetta/MEX orbit file from which
the data are taken.
Position units are kilometers,
velocity units are kilometers per
second, and acceleration units are
kilometers per second per second.
S18TP1:
Lagrange interpolation, 6-
element packets containing
x, y, z, dx/dt, dy/dt, dz/dt
where x, y, z represent Cartesian
position components and vx, vy, vz
represent Cartesian velocity
components.
Position units are kilometers;
velocity units are kilometers per
second.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 1.0.0, 16-AUG-2002 (NJB)
*/
#ifndef HAVE_SPICE_SPK_H
#define HAVE_SPICE_SPK_H
/*
SPK type 18 subtype codes:
*/
enum _SpiceSPK18Subtype { S18TP0, S18TP1 };
typedef enum _SpiceSPK18Subtype SpiceSPK18Subtype;
#endif

View File

@@ -1,240 +0,0 @@
/*
-Header_File SpiceUsr.h ( CSPICE user interface definitions )
-Abstract
Perform CSPICE user interface declarations, including type
definitions and function prototype declarations.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This file is an umbrella header that includes all header files
required to support the CSPICE application programming interface
(API). Users' application code that calls CSPICE need include only
this single header file. This file includes function prototypes for
the entire set of CSPICE routines. Typedef statements used to create
SPICE data types are also included.
About SPICE data types
======================
To assist with long-term maintainability of CSPICE, NAIF has elected
to use typedefs to represent data types occurring in argument lists
and as return values of CSPICE functions. These are:
SpiceBoolean
SpiceChar
SpiceDouble
SpiceInt
ConstSpiceBoolean
ConstSpiceChar
ConstSpiceDouble
ConstSpiceInt
The SPICE typedefs map in an arguably natural way to ANSI C types:
SpiceBoolean -> enum { SPICEFALSE = 0, SPICETRUE = 1 }
SpiceChar -> char
SpiceDouble -> double
SpiceInt -> int or long
ConstX -> const X (X = any of the above types)
The type SpiceInt is a special case: the corresponding type is picked
so as to be half the size of a double. On all currently supported
platforms, type double occupies 8 bytes and type int occupies 4
bytes. Other platforms may require a SpiceInt to map to type long.
While other data types may be used internally in CSPICE, no other
types appear in the API.
About CSPICE function prototypes
================================
Because CSPICE function prototypes enable substantial compile-time
error checking, we recommend that user applications always reference
them. Including the header file SpiceUsr.h in any module that calls
CSPICE will automatically make the prototypes available.
About CSPICE C style
====================
CSPICE is written in ANSI C. No attempt has been made to support K&R
conventions or restrictions.
About C++ compatibility
=======================
The preprocessor directive -D__cplusplus should be used when
compiling C++ source code that includes this header file. This
directive will suppress mangling of CSPICE names, permitting linkage
to a CSPICE object library built from object modules produced by
an ANSI C compiler.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
S.C. Krening (JPL)
E.D. Wright (JPL)
-Restrictions
The #include statements contained in this file are not part of
the CSPICE API. The set of files included may change without notice.
Users should not include these files directly in their own
application code.
-Version
-CSPICE Version 5.0.0, 11-MAY-2012 (NJB) (SCK)
Updated to include header files
SpiceErr.h
SpiceFrm.h
SpiceOccult.h
-CSPICE Version 4.0.0, 30-SEP-2008 (NJB)
Updated to include header file
SpiceGF.h
-CSPICE Version 3.0.0, 19-AUG-2002 (NJB)
Updated to include header files
SpiceCel.h
SpiceCK.h
SpiceSPK.h
-CSPICE Version 3.0.0, 17-FEB-1999 (NJB)
Updated to support suppression of name mangling when included in
C++ source code. Also now interface macros to intercept function
calls and perform automatic type casting.
Now includes platform macro definition header file.
References to types SpiceVoid and ConstSpiceVoid were removed.
-CSPICE Version 2.0.0, 06-MAY-1998 (NJB) (EDW)
*/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef HAVE_SPICE_USER
#define HAVE_SPICE_USER
/*
Include CSPICE platform macro definitions.
*/
#include "SpiceZpl.h"
/*
Include CSPICE data type definitions.
*/
#include "SpiceZdf.h"
/*
Include the CSPICE error handling interface definitions.
*/
#include "SpiceErr.h"
/*
Include the CSPICE EK interface definitions.
*/
#include "SpiceEK.h"
/*
Include the CSPICE frame subsystem API definitions.
*/
#include "SpiceFrm.h"
/*
Include the CSPICE Cell interface definitions.
*/
#include "SpiceCel.h"
/*
Include the CSPICE CK interface definitions.
*/
#include "SpiceCK.h"
/*
Include the CSPICE SPK interface definitions.
*/
#include "SpiceSPK.h"
/*
Include the CSPICE GF interface definitions.
*/
#include "SpiceGF.h"
/*
Include the CSPICE occultation definitions.
*/
#include "SpiceOccult.h"
/*
Include CSPICE prototypes.
*/
#include "SpiceZpr.h"
/*
Define the CSPICE function interface macros.
*/
#include "SpiceZim.h"
#endif
#ifdef __cplusplus
}
#endif

View File

@@ -1,209 +0,0 @@
/*
-Header_File SpiceZad.h ( CSPICE adapter definitions )
-Abstract
Perform CSPICE declarations to support passed-in function
adapters used in wrapper interfaces.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header file contains declarations used by the CSPICE
passed-in function adapter ("PFA") system. This system enables
CSPICE wrapper functions to support passed-in function
arguments whose prototypes are C-style, even when these
functions are to be called from f2c'd Fortran routines
expecting f2c-style interfaces.
This header declares:
- The prototype for the passed-in function argument
pointer storage and fetch routines
zzadsave_c
zzadget_c
- Prototypes for CSPICE adapter functions. Each passed-in
function argument in a CSPICE wrapper has a corresponding
adapter function. The adapter functions have interfaces
that match those of their f2c'd counterparts; this allows
the adapters to be called by f2c'd SPICELIB code. The
adapters look up saved function pointers for routines
passed in by the wrapper's caller and call these functions.
- Values for the enumerated type SpicePassedInFunc. These
values are used to map function pointers to the
functions they represent, enabling adapters to call
the correct passed-in functions.
Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
None.
-Version
-CSPICE Version 2.2.0, 29-NOV-2011 (EDW)
Updated to support the user defined boolean function capability.
-CSPICE Version 2.1.0, 21-DEC-2009 (EDW)
Updated to support the user defined scalar function capability.
-CSPICE Version 2.0.0, 29-JAN-2009 (NJB)
Now conditionally includes SpiceZfc.h.
Updated to reflect new calling sequence of f2c'd
routine gfrefn_. Some header updates were made
as well.
-CSPICE Version 1.0.0, 29-MAR-2008 (NJB)
*/
/*
This file has dependencies defined in SpiceZfc.h. Include that
file if it hasn't already been included.
*/
#ifndef HAVE_SPICEF2C_H
#include "SpiceZfc.h"
#endif
#ifndef HAVE_SPICE_ZAD_H
#define HAVE_SPICE_ZAD_H
/*
Prototypes for GF adapters:
*/
logical zzadbail_c ( void );
int zzadstep_c ( doublereal * et,
doublereal * step );
int zzadrefn_c ( doublereal * t1,
doublereal * t2,
logical * s1,
logical * s2,
doublereal * t );
int zzadrepf_c ( void );
int zzadrepi_c ( doublereal * cnfine,
char * srcpre,
char * srcsuf,
ftnlen srcprelen,
ftnlen srcsuflen );
int zzadrepu_c ( doublereal * ivbeg,
doublereal * ivend,
doublereal * et );
int zzadfunc_c ( doublereal * et,
doublereal * value );
int zzadqdec_c ( U_fp udfunc,
doublereal * et,
logical * xbool );
/*
Define the enumerated type
SpicePassedInFunc
for names of passed-in functions. Using this type gives
us compile-time checking and avoids string comparisons.
*/
enum _SpicePassedInFunc {
UDBAIL,
UDREFN,
UDREPF,
UDREPI,
UDREPU,
UDSTEP,
UDFUNC,
UDQDEC,
};
typedef enum _SpicePassedInFunc SpicePassedInFunc;
/*
SPICE_N_PASSED_IN_FUNC is the count of SpicePassedInFunc values.
*/
#define SPICE_N_PASSED_IN_FUNC 8
/*
CSPICE wrappers supporting passed-in function arguments call
the adapter setup interface function once per each such argument;
these calls save the function pointers for later use within the
f2c'd code that calls passed-in functions. The saved pointers
will be used in calls by the adapter functions whose prototypes
are declared above.
Prototypes for adapter setup interface:
*/
void zzadsave_c ( SpicePassedInFunc functionID,
void * functionPtr );
void * zzadget_c ( SpicePassedInFunc functionID );
#endif
/*
End of header file SpiceZad.h
*/

View File

@@ -1,260 +0,0 @@
/*
-Header_File SpiceZdf.h ( CSPICE definitions )
-Abstract
Define CSPICE data types via typedefs; also define some user-visible
enumerated types.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
CSPICE data types
=================
To assist with long-term maintainability of CSPICE, NAIF has elected
to use typedefs to represent data types occurring in argument lists
and as return values of CSPICE functions. These are:
SpiceBoolean
SpiceChar
SpiceDouble
SpiceInt
ConstSpiceBoolean
ConstSpiceChar
ConstSpiceDouble
ConstSpiceInt
The SPICE typedefs map in an arguably natural way to ANSI C types:
SpiceBoolean -> int
SpiceChar -> char
SpiceDouble -> double
SpiceInt -> int or long
ConstX -> const X (X = any of the above types)
The type SpiceInt is a special case: the corresponding type is picked
so as to be half the size of a double. On most currently supported
platforms, type double occupies 8 bytes and type long occupies 4
bytes. Other platforms may require a SpiceInt to map to type int.
The Alpha/Digital Unix platform is an example of the latter case.
While other data types may be used internally in CSPICE, no other
types appear in the API.
CSPICE enumerated types
=======================
These are provided to enhance readability of the code.
Type name Value set
--------- ---------
_Spicestatus { SPICEFAILURE = -1, SPICESUCCESS = 0 }
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
B.V. Semenov (JPL)
E.D. Wright (JPL)
-Restrictions
None.
-Version
-CSPICE Version 6.2.0, 10-MAR-2014 (BVS)
Updated for:
PC-CYGWIN-64BIT-GCC_C
environment. Added the corresponding tag:
CSPICE_PC_CYGWIN_64BIT_GCC
tag to the #ifdefs set.
-CSPICE Version 6.1.0, 14-MAY-2010 (EDW)(BVS)
Updated for:
MAC-OSX-64BIT-INTEL_C
SUN-SOLARIS-64BIT-NATIVE_C
SUN-SOLARIS-INTEL-64BIT-CC_C
environments. Added the corresponding tags:
CSPICE_MAC_OSX_INTEL_64BIT_GCC
CSPICE_SUN_SOLARIS_64BIT_NATIVE
CSPICE_SUN_SOLARIS_INTEL_64BIT_CC
tag to the #ifdefs set.
-CSPICE Version 6.0.0, 21-FEB-2006 (NJB)
Updated to support the PC Linux 64 bit mode/gcc platform.
-CSPICE Version 5.0.0, 27-JAN-2003 (NJB)
Updated to support the Sun Solaris 64 bit mode/gcc platform.
-CSPICE Version 4.0.0 27-JUL-2002 (NJB)
Added definition of SpiceDataType.
-CSPICE Version 3.0.0 18-SEP-1999 (NJB)
SpiceBoolean implementation changed from enumerated type to
typedef mapping to int.
-CSPICE Version 2.0.0 29-JAN-1999 (NJB)
Made definition of SpiceInt and ConstSpiceInt platform
dependent to accommodate the Alpha/Digital Unix platform.
Removed definitions of SpiceVoid and ConstSpiceVoid.
-CSPICE Version 1.0.0 25-OCT-1997 (KRG) (NJB) (EDW)
*/
#ifndef HAVE_SPICEDEFS_H
#define HAVE_SPICEDEFS_H
/*
Include platform definitions, if they haven't been executed already.
*/
#ifndef HAVE_PLATFORM_MACROS_H
#include "SpiceZpl.h"
#endif
/*
Basic data types. These are defined to be compatible with the
types used by f2c, and so they follow the Fortran notion of what
these things are. See the f2c documentation for the details
about the choices for the sizes of these types.
*/
typedef char SpiceChar;
typedef double SpiceDouble;
typedef float SpiceFloat;
#if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_NATIVE) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|| defined(CSPICE_PC_CYGWIN_64BIT_GCC ) \
|| defined(CSPICE_PC_LINUX_64BIT_GCC ) )
typedef int SpiceInt;
#else
typedef long SpiceInt;
#endif
typedef const char ConstSpiceChar;
typedef const double ConstSpiceDouble;
typedef const float ConstSpiceFloat;
#if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_NATIVE) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|| defined(CSPICE_PC_CYGWIN_64BIT_GCC ) \
|| defined(CSPICE_PC_LINUX_64BIT_GCC ) )
typedef const int ConstSpiceInt;
#else
typedef const long ConstSpiceInt;
#endif
/*
More basic data types. These give mnemonics for some other data
types in C that are not used in Fortran written by NAIF or
supported by ANSI Fortran 77. These are for use in C functions
but should not be passed to any C SPICE wrappers, ``*_c.c''
since they are not Fortran compatible.
*/
typedef long SpiceLong;
typedef short SpiceShort;
/*
Unsigned data types
*/
typedef unsigned char SpiceUChar;
typedef unsigned int SpiceUInt;
typedef unsigned long SpiceULong;
typedef unsigned short SpiceUShort;
/*
Signed data types
*/
typedef signed char SpiceSChar;
/*
Other basic types
*/
typedef int SpiceBoolean;
typedef const int ConstSpiceBoolean;
#define SPICETRUE 1
#define SPICEFALSE 0
enum _Spicestatus { SPICEFAILURE = -1, SPICESUCCESS = 0 };
typedef enum _Spicestatus SpiceStatus;
enum _SpiceDataType { SPICE_CHR = 0,
SPICE_DP = 1,
SPICE_INT = 2,
SPICE_TIME = 3,
SPICE_BOOL = 4 };
typedef enum _SpiceDataType SpiceDataType;
#endif

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,980 +0,0 @@
/*
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
*/
/*
CSPICE private macro file.
-Particulars
Current list of macros (spelling counts)
BLANK
C2F_MAP_CELL
C2F_MAP_CELL2
C2F_MAP_CELL3
CELLINIT
CELLINIT2
CELLINIT3
CELLISSETCHK
CELLISSETCHK2
CELLISSETCHK2_VAL
CELLISSETCHK3
CELLISSETCHK3_VAL
CELLISSETCHK_VAL
CELLMATCH2
CELLMATCH2_VAL
CELLMATCH3
CELLMATCH3_VAL
CELLTYPECHK
CELLTYPECHK2
CELLTYPECHK2_VAL
CELLTYPECHK3
CELLTYPECHK3_VAL
CELLTYPECHK_VAL
CHKFSTR
CHKFSTR_VAL
CHKOSTR
CHKOSTR_VAL
CHKPTR
Constants
Even
F2C_MAP_CELL
Index values
MOVED
MOVEI
MaxAbs
MaxVal
MinAbs
MinVal
Odd
SpiceError
TolOrFail
-Restrictions
This is a private macro file for use within CSPICE.
Do not use or alter any entry. Or else!
-Author_and_Institution
N.J. Bachman (JPL)
E.D. Wright (JPL)
-Version
-CSPICE Version 4.3.0, 18-SEP-2013 (NJB)
Bug fix: missing comma was added to argument list
in body of macro CELLTYPECHK3_VAL.
-CSPICE Version 4.2.0, 16-FEB-2005 (NJB)
Bug fix: in the macro C2F_MAP_CELL, error checking has been
added after the sequence of calls to ssizec_ and scardc_.
If either of these routines signals an error, the dynamically
allocated memory for the "Fortran cell" is freed.
-CSPICE Version 4.1.0, 06-DEC-2002 (NJB)
Bug fix: added previous missing, bracketing parentheses to
references to input cell pointer argument in macro
CELLINIT.
Changed CELLINIT macro so it no longer initializes to zero
length all strings in data array of a character cell. Instead,
strings are terminated with a null in their final element.
-CSPICE Version 4.0.0, 22-AUG-2002 (NJB)
Added macro definitions to support CSPICE cells and sets:
C2F_MAP_CELL
C2F_MAP_CELL2
C2F_MAP_CELL3
CELLINIT
CELLINIT2
CELLINIT3
CELLISSETCHK
CELLISSETCHK2
CELLISSETCHK2_VAL
CELLISSETCHK3
CELLISSETCHK3_VAL
CELLISSETCHK_VAL
CELLMATCH2
CELLMATCH2_VAL
CELLMATCH3
CELLMATCH3_VAL
CELLTYPECHK
CELLTYPECHK2
CELLTYPECHK2_VAL
CELLTYPECHK3
CELLTYPECHK3_VAL
CELLTYPECHK_VAL
F2C_MAP_CELL
-CSPICE Version 3.0.0, 09-JAN-1998 (NJB)
Added output string check macros CHKOSTR and CHKOSTR_VAL.
Removed variable name arguments from macros
CHKPTR
CHKPTR_VAL
CHKFSTR
CHKRSTR_VAL
The strings containing names of the checked variables are now
generated from the variables themselves via the # operator.
-CSPICE Version 2.0.0, 03-DEC-1997 (NJB)
Added pointer check macro CHKPTR and Fortran string check macro
CHKFSTR.
-CSPICE Version 1.0.0, 25-OCT-1997 (EDW)
*/
#include <math.h>
#include <string.h>
#include "SpiceZdf.h"
#define MOVED( arrfrm, ndim, arrto ) \
\
( memmove ( (void*) (arrto) , \
(void*) (arrfrm), \
sizeof (SpiceDouble) * (ndim) ) )
#define MOVEI( arrfrm, ndim, arrto ) \
\
( memmove ( (void*) (arrto) , \
(void*) (arrfrm), \
sizeof (SpiceInt) * (ndim) ) )
/*
Define a tolerance test for those pesky double precision reals.
True if the difference is less than the tolerance, false otherwise.
The tolerance refers to a percentage. x, y and tol should be declared
double. All values are assumed to be non-zero. Okay?
*/
#define TolOrFail( x, y, tol ) \
\
( fabs( x-y ) < ( tol * fabs(x) ) )
/*
Simple error output through standard SPICE error system . Set the error
message and the type
*/
#define SpiceError( errmsg, errtype ) \
\
{ \
setmsg_c ( errmsg ); \
sigerr_c ( errtype ); \
}
/*
Return a value which is the maximum/minimum of the absolute values of
two values.
*/
#define MaxAbs(a,b) ( fabs(a) >= fabs(b) ? fabs(a) : fabs(b) )
#define MinAbs(a,b) ( fabs(a) < fabs(b) ? fabs(a) : fabs(b) )
/*
Return a value which is the maximum/minimum value of two values.
*/
#define MaxVal(A,B) ( (A) >= (B) ? (A) : (B) )
#define MinVal(A,B) ( (A) < (B) ? (A) : (B) )
/*
Determine whether a value is even or odd
*/
#define Even( x ) ( ( (x) & 1 ) == 0 )
#define Odd ( x ) ( ( (x) & 1 ) != 0 )
/*
Array indexes for vectors.
*/
#define SpiceX 0
#define SpiceY 1
#define SpiceZ 2
#define SpiceVx 3
#define SpiceVy 4
#define SpiceVz 5
/*
Physical constants and dates.
*/
#define B1900 2415020.31352
#define J1900 2415020.0
#define JYEAR 31557600.0
#define TYEAR 31556925.9747
#define J1950 2433282.5
#define SPD 86400.0
#define B1950 2433282.42345905
#define J2100 2488070.0
#define CLIGHT 299792.458
#define J2000 2451545.0
/*
Common literal values.
*/
#define NULLCHAR ( (SpiceChar ) 0 )
#define NULLCPTR ( (SpiceChar * ) 0 )
#define BLANK ( (SpiceChar ) ' ' )
/*
Macro CHKPTR is used for checking for a null pointer. CHKPTR uses
the constants
CHK_STANDARD
CHK_DISCOVER
CHK_REMAIN
to control tracing behavior. Values and meanings are:
CHK_STANDARD Standard tracing. If an error
is found, signal it, check out
and return.
CHK_DISCOVER Discovery check-in. If an
error is found, check in, signal
the error, check out, and return.
CHK_REMAIN If an error is found, signal it.
Do not check out or return. This
would allow the caller to clean up
before returning, if necessary.
In such cases the caller must test
failed_c() after the macro call.
CHKPTR should be used in void functions. In non-void functions,
use CHKPTR_VAL, which is defined below.
*/
#define CHK_STANDARD 1
#define CHK_DISCOVER 2
#define CHK_REMAIN 3
#define CHKPTR( errHandling, modname, pointer ) \
\
if ( (void *)(pointer) == (void *)0 ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Pointer \"#\" is null; a non-null " \
"pointer is required." ); \
errch_c ( "#", (#pointer) ); \
sigerr_c ( "SPICE(NULLPOINTER)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CHKPTR_VAL( errHandling, modname, pointer, retval ) \
\
if ( (void *)(pointer) == (void *)0 ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Pointer \"#\" is null; a non-null " \
"pointer is required." ); \
errch_c ( "#", (#pointer) ); \
sigerr_c ( "SPICE(NULLPOINTER)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return ( retval ); \
} \
}
/*
Macro CHKFSTR checks strings that are to be passed to Fortran or
f2c'd Fortran routines. Such strings must have non-zero length,
and their pointers must be non-null.
CHKFSTR should be used in void functions. In non-void functions,
use CHKFSTR_VAL, which is defined below.
*/
#define CHKFSTR( errHandling, modname, string ) \
\
CHKPTR ( errHandling, modname, string ); \
\
if ( ( (void *)string != (void *)0 ) \
&& ( strlen(string) == 0 ) ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "String \"#\" has length zero." ); \
errch_c ( "#", (#string) ); \
sigerr_c ( "SPICE(EMPTYSTRING)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CHKFSTR_VAL( errHandling, modname, string, retval ) \
\
CHKPTR_VAL( errHandling, modname, string, retval); \
\
if ( ( (void *)string != (void *)0 ) \
&& ( strlen(string) == 0 ) ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "String \"#\" has length zero." ); \
errch_c ( "#", (#string) ); \
sigerr_c ( "SPICE(EMPTYSTRING)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return ( retval ); \
} \
}
/*
Macro CHKOSTR checks output string pointers and the associated
string length values supplied as input arguments. Output string
pointers must be non-null, and the string lengths must be at
least 2, so Fortran routine can write at least one character to
the output string, and so a null terminator can be appended.
CHKOSTR should be used in void functions. In non-void functions,
use CHKOSTR_VAL, which is defined below.
*/
#define CHKOSTR( errHandling, modname, string, length ) \
\
CHKPTR ( errHandling, modname, string ); \
\
if ( ( (void *)string != (void *)0 ) \
&& ( length < 2 ) ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "String \"#\" has length #; must be >= 2." ); \
errch_c ( "#", (#string) ); \
errint_c ( "#", (length) ); \
sigerr_c ( "SPICE(STRINGTOOSHORT)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CHKOSTR_VAL( errHandling, modname, string, length, retval ) \
\
CHKPTR_VAL( errHandling, modname, string, retval ); \
\
if ( ( (void *)string != (void *)0 ) \
&& ( length < 2 ) ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "String \"#\" has length #; must be >= 2." ); \
errch_c ( "#", (#string) ); \
errint_c ( "#", (length) ); \
sigerr_c ( "SPICE(STRINGTOOSHORT)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return ( retval ); \
} \
}
/*
Definitions for Cells and Sets
*/
/*
Cell initialization macros
*/
#define CELLINIT( cellPtr ) \
\
if ( !( (cellPtr)->init ) ) \
{ \
if ( (cellPtr)->dtype == SPICE_CHR ) \
{ \
/* \
Make sure all elements of the data array, including \
the control area, start off null-terminated. We place \
the null character in the final element of each string, \
so as to avoid wiping out data that may have been \
assigned to the data array prior to initialization. \
*/ \
SpiceChar * sPtr; \
SpiceInt i; \
SpiceInt nmax; \
\
nmax = SPICE_CELL_CTRLSZ + (cellPtr)->size; \
\
for ( i = 1; i <= nmax; i++ ) \
{ \
sPtr = (SpiceChar *)((cellPtr)->base) \
+ i * (cellPtr)->length \
- 1; \
\
*sPtr = NULLCHAR; \
} \
} \
else \
{ \
zzsynccl_c ( C2F, (cellPtr) ); \
} \
\
(cellPtr)->init = SPICETRUE; \
}
#define CELLINIT2( cellPtr1, cellPtr2 ) \
\
CELLINIT ( cellPtr1 ); \
CELLINIT ( cellPtr2 );
#define CELLINIT3( cellPtr1, cellPtr2, cellPtr3 ) \
\
CELLINIT ( cellPtr1 ); \
CELLINIT ( cellPtr2 ); \
CELLINIT ( cellPtr3 );
/*
Data type checking macros:
*/
#define CELLTYPECHK( errHandling, modname, dType, cellPtr1 ) \
\
if ( (cellPtr1)->dtype != (dType) ) \
{ \
SpiceChar * typstr[3] = \
{ \
"character", "double precision", "integer" \
}; \
\
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Data type of # is #; expected type " \
"is #." ); \
errch_c ( "#", (#cellPtr1) ); \
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
errch_c ( "#", typstr[ dType ] ); \
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CELLTYPECHK_VAL( errHandling, modname, \
dType, cellPtr1, retval ) \
\
if ( (cellPtr1)->dtype != (dType) ) \
{ \
SpiceChar * typstr[3] = \
{ \
"character", "double precision", "integer" \
}; \
\
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Data type of # is #; expected type " \
"is #." ); \
errch_c ( "#", (#cellPtr1) ); \
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
errch_c ( "#", typstr[ dType ] ); \
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return (retval); \
} \
}
#define CELLTYPECHK2( errHandling, modname, dtype, \
cellPtr1, cellPtr2 ) \
\
CELLTYPECHK( errHandling, modname, dtype, cellPtr1 ); \
CELLTYPECHK( errHandling, modname, dtype, cellPtr2 );
#define CELLTYPECHK2_VAL( errHandling, modname, dtype, \
cellPtr1, cellPtr2, retval ) \
\
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr1, \
retval ); \
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr2, \
retval );
#define CELLTYPECHK3( errHandling, modname, dtype, \
cellPtr1, cellPtr2, cellPtr3 ) \
\
CELLTYPECHK( errHandling, modname, dtype, cellPtr1 ); \
CELLTYPECHK( errHandling, modname, dtype, cellPtr2 ); \
CELLTYPECHK( errHandling, modname, dtype, cellPtr3 );
#define CELLTYPECHK3_VAL( errHandling, modname, dtype, \
cellPtr1, cellPtr2, cellPtr3, \
retval ) \
\
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr1, \
retval ); \
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr2, \
retval ); \
CELLTYPECHK_VAL( errHandling, modname, dtype, cellPtr3, \
retval );
#define CELLMATCH2( errHandling, modname, cellPtr1, cellPtr2 ) \
\
if ( (cellPtr1)->dtype != (cellPtr2)->dtype ) \
{ \
SpiceChar * typstr[3] = \
{ \
"character", "double precision", "integer" \
}; \
\
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Data type of # is #; data type of # " \
"is #, but types must match." ); \
errch_c ( "#", (#cellPtr1) ); \
errch_c ( "#", typstr[ (cellPtr1)->dtype ] ); \
errch_c ( "#", (#cellPtr2) ); \
errch_c ( "#", typstr[ (cellPtr2)->dtype ] ); \
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CELLMATCH2_VAL( errHandling, modname, \
cellPtr1, cellPtr2, retval ) \
\
if ( (cellPtr1)->dtype != (cellPtr2)->dtype ) \
{ \
SpiceChar * typstr[3] = \
{ \
"character", "double precision", "integer" \
}; \
\
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Data type of # is #; data type of # " \
"is #, but types must match." ); \
errch_c ( "#", (#cellPtr1) ); \
errch_c ( "#", typstr [ (cellPtr1)->dtype ] ); \
errch_c ( "#", (#cellPtr2) ); \
errch_c ( "#", typstr [ (cellPtr2)->dtype ] ); \
sigerr_c ( "SPICE(TYPEMISMATCH)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return ( retval ); \
} \
}
#define CELLMATCH3( errHandling, modname, \
cellPtr1, cellPtr2, cellPtr3 ) \
\
CELLMATCH2 ( errHandling, modname, cellPtr1, cellPtr2 ); \
CELLMATCH2 ( errHandling, modname, cellPtr2, cellPtr3 );
#define CELLMATCH3_VAL( errHandling, modname, cellPtr1, \
cellPtr2, cellPtr3, retval ) \
\
CELLMATCH2_VAL ( errHandling, modname, \
cellPtr1, cellPtr2, retval ); \
\
CELLMATCH2_VAL ( errHandling, modname, \
cellPtr2, cellPtr3, retval );
/*
Set checking macros:
*/
#define CELLISSETCHK( errHandling, modname, cellPtr1 ) \
\
if ( !(cellPtr1)->isSet ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Cell # must be sorted and have unique " \
"values in order to be a CSPICE set. " \
"The isSet flag in this cell is SPICEFALSE, " \
"indicating the cell may have been modified " \
"by a routine that doesn't preserve these " \
"properties." ); \
errch_c ( "#", (#cellPtr1) ); \
sigerr_c ( "SPICE(NOTASET)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return; \
} \
}
#define CELLISSETCHK_VAL( errHandling, modname, \
cellPtr1, retval ) \
\
if ( !(cellPtr1)->isSet ) \
{ \
if ( (errHandling) == CHK_DISCOVER ) \
{ \
chkin_c ( modname ); \
} \
\
setmsg_c ( "Cell # must be sorted and have unique " \
"values in order to be a CSPICE set. " \
"The isSet flag in this cell is SPICEFALSE, " \
"indicating the cell may have been modified " \
"by a routine that doesn't preserve these " \
"properties." ); \
errch_c ( "#", (#cellPtr1) ); \
sigerr_c ( "SPICE(NOTASET)" ); \
\
if ( ( (errHandling) == CHK_DISCOVER ) \
|| ( (errHandling) == CHK_STANDARD ) ) \
{ \
chkout_c ( modname ); \
return (retval); \
} \
}
#define CELLISSETCHK2( errHandling, modname, \
cellPtr1, cellPtr2 ) \
\
CELLISSETCHK( errHandling, modname, cellPtr1 ); \
CELLISSETCHK( errHandling, modname, cellPtr2 );
#define CELLISSETCHK2_VAL( errHandling, modname, \
cellPtr1, cellPtr2, retval ) \
\
CELLISSETCHK_VAL( errHandling, modname, cellPtr1, retval ); \
CELLISSETCHK_VAL( errHandling, modname, cellPtr2, retval ); \
#define CELLISSETCHK3( errHandling, modname, \
cellPtr1, cellPtr2, cellPtr3 ) \
\
CELLISSETCHK ( errHandling, modname, cellPtr1 ); \
CELLISSETCHK ( errHandling, modname, cellPtr2 ); \
CELLISSETCHK ( errHandling, modname, cellPtr3 );
#define CELLISSETCHK3_VAL( errHandling, modname, cellPtr1, \
cellPtr2, cellPtr3, retval ) \
\
CELLISSETCHK_VAL ( errHandling, modname, cellPtr1, retval ); \
CELLISSETCHK_VAL ( errHandling, modname, cellPtr2, retval ); \
CELLISSETCHK_VAL ( errHandling, modname, cellPtr3, retval );
/*
C-to-Fortran and Fortran-to-C character cell translation macros:
*/
/*
Macros that map one or more character C cells to dynamically
allocated Fortran-style character cells:
*/
#define C2F_MAP_CELL( caller, CCell, fCell, fLen ) \
\
{ \
/* \
fCell and fLen are to be passed by reference, as if this \
macro were a function. \
\
\
Caution: dynamically allocates array fCell, which is to be \
freed by caller! \
*/ \
SpiceInt ndim; \
SpiceInt lenvals; \
\
\
ndim = (CCell)->size + SPICE_CELL_CTRLSZ; \
lenvals = (CCell)->length; \
\
C2F_MapFixStrArr ( (caller), ndim, lenvals, \
(CCell)->base, (fLen), (fCell) ); \
\
if ( !failed_c() ) \
{ \
/* \
Explicitly set the control area info in the Fortran cell.\
*/ \
ssizec_ ( ( integer * ) &((CCell)->size), \
( char * ) *(fCell), \
( ftnlen ) *(fLen) ); \
\
scardc_ ( ( integer * ) &((CCell)->card), \
( char * ) *(fCell), \
( ftnlen ) *(fLen) ); \
\
if ( failed_c() ) \
{ \
/* \
Setting size or cardinality of the Fortran cell \
can fail, for example if the cell's string length \
is too short. \
*/ \
free ( *(fCell) ); \
} \
} \
}
#define C2F_MAP_CELL2( caller, CCell1, fCell1, fLen1, \
CCell2, fCell2, fLen2 ) \
\
{ \
C2F_MAP_CELL( caller, CCell1, fCell1, fLen1 ); \
\
if ( !failed_c() ) \
{ \
C2F_MAP_CELL( caller, CCell2, fCell2, fLen2 ); \
\
if ( failed_c() ) \
{ \
free ( *(fCell1) ); \
} \
} \
}
#define C2F_MAP_CELL3( caller, CCell1, fCell1, fLen1, \
CCell2, fCell2, fLen2, \
CCell3, fCell3, fLen3 ) \
\
{ \
C2F_MAP_CELL2( caller, CCell1, fCell1, fLen1, \
CCell2, fCell2, fLen2 ); \
\
if ( !failed_c() ) \
{ \
C2F_MAP_CELL( caller, CCell3, fCell3, fLen3 ); \
\
if ( failed_c() ) \
{ \
free ( *(fCell1) ); \
free ( *(fCell2) ); \
} \
} \
}
/*
Macro that maps a Fortran-style character cell to a C cell
(Note: this macro frees the Fortran cell):
*/
#define F2C_MAP_CELL( fCell, fLen, CCell ) \
\
{ \
SpiceInt card; \
SpiceInt lenvals; \
SpiceInt ndim; \
SpiceInt nBytes; \
SpiceInt size; \
void * array; \
\
ndim = (CCell)->size + SPICE_CELL_CTRLSZ; \
lenvals = (CCell)->length; \
array = (CCell)->base; \
\
/* \
Capture the size and cardinality of the Fortran cell. \
*/ \
if ( !failed_c() ) \
{ \
size = sizec_ ( ( char * ) (fCell), \
( ftnlen ) fLen ); \
\
card = cardc_ ( ( char * ) (fCell), \
( ftnlen ) fLen ); \
} \
\
\
/* \
Copy the Fortran array into the output array. \
*/ \
\
nBytes = ndim * fLen * sizeof(SpiceChar); \
memmove ( array, fCell, nBytes ); \
/* \
Convert the output array from Fortran to C style. \
*/ \
F2C_ConvertTrStrArr ( ndim, lenvals, (SpiceChar *)array ); \
\
/* \
Sync the size and cardinality of the C cell. \
*/ \
if ( !failed_c() ) \
{ \
(CCell)->size = size; \
(CCell)->card = card; \
} \
}
/*
End of header SpiceZmc.h
*/

View File

@@ -1,117 +0,0 @@
/*
-Header_File SpiceZpl.h ( CSPICE platform macros )
-Abstract
Define macros identifying the host platform for which this
version of CSPICE is targeted.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Literature_References
None.
-Particulars
This header file defines macros that enable CSPICE code to be
compiled conditionally based on the identity of the host platform.
The macros defined here ARE visible in the macro name space of
any file that includes SpiceUsr.h. The names are prefixed with
the string CSPICE_ to help prevent conflicts with macros defined
by users' applications.
-Author_and_Institution
N.J. Bachman (JPL)
B.V. Semenov (JPL)
E.D. Wright (JPL)
-Version
-CSPICE Version 2.1.0, 10-MAR-2014 (BVS)
Updated for the:
PC-CYGWIN-64BIT-GCC_C
environment.
-CSPICE Version 2.2.0, 14-MAY-2010 (EDW)(BVS)
Updated for the:
MAC-OSX-64BIT-INTEL_C
PC-64BIT-MS_C
SUN-SOLARIS-64BIT-NATIVE_C
SUN-SOLARIS-INTEL-64BIT-CC_C
SUN-SOLARIS-INTEL-CC_C
environments.
-CSPICE Version 2.1.0, 15-NOV-2006 (BVS)
Updated for MAC-OSX-INTEL_C environment.
-CSPICE Version 2.0.0, 21-FEB-2006 (NJB)
Updated for PC-LINUX-64BIT-GCC_C environment.
-CSPICE Version 1.3.0, 06-MAR-2005 (NJB)
Updated for SUN-SOLARIS-64BIT-GCC_C environment.
-CSPICE Version 1.2.0, 03-JAN-2005 (BVS)
Updated for PC-CYGWIN_C environment.
-CSPICE Version 1.1.0, 27-JUL-2002 (BVS)
Updated for MAC-OSX-NATIVE_C environment.
-CSPICE Version 1.0.0, 26-FEB-1999 (NJB) (EDW)
-Index_Entries
platform ID defines for CSPICE
*/
#ifndef HAVE_PLATFORM_MACROS_H
#define HAVE_PLATFORM_MACROS_H
#define CSPICE_MAC_OSX_INTEL_64BIT_GCC
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -1,82 +0,0 @@
/*
-Header_File SpiceZrnm.h ( CSPICE rename assignments )
-Abstract
Reassign CSPICE symbol names to prevent symbol collisions.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Literature_References
None.
-Particulars
Compiled symbol names in CSPICE may collide with symbols in other,
non-SPICE libraries. This file redefines names which have or may
cause a collision.
-Author_and_Institution
N.J. Bachman (JPL)
E.D. Wright (JPL)
-Version
-CSPICE Version 1.0.0, 17-OCT-2011 (EDW)
-Index_Entries
Rename assignments for CSPICE functions
*/
#ifndef HAVE_SPICERENAME_H
/*
Redefine names causing symbol conflicts:
*/
#define HAVE_SPICERENAME_H
/* dpstrf_ may exist in the LAPACK library. */
#define dpstrf_ zz_dpstrf_
/* Just in case. */
#define pi_ zz_pi_
#define vnorm_ zz_vnorm_
#define vdist_ zz_vdist_
#endif

View File

@@ -1,199 +0,0 @@
/*
-Header_File SpiceZst.h ( Fortran/C string conversion utilities )
-Abstract
Define prototypes for CSPICE Fortran/C string conversion utilities.
Caution: these prototypes are subject to revision without notice.
These are private routines and are not part of the official CSPICE
user interface.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
None.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
K.R. Gehringer (JPL)
E.D. Wright (JPL)
-Version
-CSPICE Version 6.0.0, 10-JUL-2002 (NJB)
Added prototype for new functions C2F_MapStrArr and
C2F_MapFixStrArr.
-CSPICE Version 5.0.0, 18-MAY-2001 (WLT)
Added #ifdef's to add namespace specification for C++ compilation.
-CSPICE Version 4.0.0, 14-FEB-2000 (NJB)
Added prototype for new function C2F_CreateStrArr_Sig.
-CSPICE Version 3.0.0, 12-JUL-1999 (NJB)
Added prototype for function C2F_CreateFixStrArr.
Added prototype for function F2C_ConvertTrStrArr.
Removed reference in comments to C2F_CreateStrArr_Sig, which
does not exist.
-CSPICE Version 2.0.1, 06-MAR-1998 (NJB)
Type SpiceVoid was changed to void.
-CSPICE Version 2.0.1, 09-FEB-1998 (EDW)
Added prototype for F2C_ConvertStrArr.
-CSPICE Version 2.0.0, 04-JAN-1998 (NJB)
Added prototype for F2C_ConvertStr.
-CSPICE Version 1.0.0, 25-OCT-1997 (NJB) (KRG) (EDW)
-Index_Entries
protoypes of CSPICE Fortran/C string conversion utilities
*/
#include <stdlib.h>
#include <string.h>
#include "SpiceZdf.h"
#ifndef HAVE_FCSTRINGS_H
#define HAVE_FCSTRINGS_H
#ifdef __cplusplus
namespace Jpl_NAIF_CSpice {
#endif
SpiceStatus C2F_CreateStr ( ConstSpiceChar *,
SpiceInt *,
SpiceChar ** );
void C2F_CreateStr_Sig ( ConstSpiceChar *,
SpiceInt *,
SpiceChar ** );
void C2F_CreateFixStrArr ( SpiceInt nStr,
SpiceInt cStrDim,
ConstSpiceChar ** cStrArr,
SpiceInt * fStrLen,
SpiceChar ** fStrArr );
SpiceStatus C2F_CreateStrArr ( SpiceInt,
ConstSpiceChar **,
SpiceInt *,
SpiceChar ** );
void C2F_CreateStrArr_Sig ( SpiceInt nStr,
ConstSpiceChar ** cStrArr,
SpiceInt * fStrLen,
SpiceChar ** fStrArr );
void C2F_MapFixStrArr ( ConstSpiceChar * caller,
SpiceInt nStr,
SpiceInt cStrLen,
const void * cStrArr,
SpiceInt * fStrLen,
SpiceChar ** fStrArr );
void C2F_MapStrArr ( ConstSpiceChar * caller,
SpiceInt nStr,
SpiceInt cStrLen,
const void * cStrArr,
SpiceInt * fStrLen,
SpiceChar ** fStrArr );
SpiceStatus C2F_StrCpy ( ConstSpiceChar *,
SpiceInt,
SpiceChar * );
void F_Alloc ( SpiceInt,
SpiceChar** );
void F2C_ConvertStr ( SpiceInt,
SpiceChar * );
void F2C_ConvertStrArr ( SpiceInt n,
SpiceInt lenout,
SpiceChar * cvals );
void F2C_ConvertTrStrArr ( SpiceInt n,
SpiceInt lenout,
SpiceChar * cvals );
SpiceStatus F2C_CreateStr ( SpiceInt,
ConstSpiceChar *,
SpiceChar ** );
void F2C_CreateStr_Sig ( SpiceInt,
ConstSpiceChar *,
SpiceChar ** );
SpiceStatus F2C_CreateStrArr ( SpiceInt,
SpiceInt,
ConstSpiceChar *,
SpiceChar *** );
void F2C_CreateStrArr_Sig ( SpiceInt,
SpiceInt,
ConstSpiceChar *,
SpiceChar *** );
void F2C_FreeStrArr ( SpiceChar **cStrArr );
SpiceStatus F2C_StrCpy ( SpiceInt,
ConstSpiceChar *,
SpiceInt,
SpiceChar * );
SpiceInt F_StrLen ( SpiceInt,
ConstSpiceChar * );
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -1,683 +0,0 @@
/*
-Header_File f2c.h ( CSPICE version of the f2c standard header file )
-Abstract
Perform standard f2c declarations, customized for the host
environment.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
The standard f2c header file f2c.h must be included by every function
generated by running f2c on Fortran source code. The header f2c.h
includes typedefs used to provide a level of indirection in mapping
Fortran data types to native C data types. For example, Fortran
INTEGER variables are mapped to variables of type integer, where
integer is a C typedef. In the standard f2c.h header, the typedef
integer translates to the C type long.
Because the standard version of f2c.h does not work on all platforms,
this header file contains two platform-dependent versions of it,
meant to be selected at build time via precompiler switches. The
precompiler switches reference macros defined in SpiceZpl.h to
determine for which host platform the code is targeted. The first
version of f2c.h, which works on most platforms, is copied directly
from the standard version of f2c.h. The second version is intended
for use on the DEC Alpha running Digital Unix and the Sun/Solaris
platform using 64 bit mode and running gcc. On those systems, longs
occupy 8 bytes, as do doubles. Because the Fortran standard requires
that INTEGERS occupy half the storage of DOUBLE PRECISION numbers,
INTEGERS should be mapped to 4-byte ints rather than 8-byte longs
on the platforms having 8-byte longs. In order to achieve this, the
header f2c.h was transformed using the sed command
sed 's/long //' f2c.h
The high-level structure of this file is then:
# if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) )
[ Alpha/Digital Unix and Sun Solaris 64 bit mode/gcc
version of f2c.h source code ]
# else
[ Standard version of f2c.h source code ]
# endif
-Restrictions
1) This header file must be updated whenever the f2c processor
or the f2c libraries libI77 and libF77 are updated.
2) This header may need to be updated to support new platforms.
The supported platforms at the time of the 31-JAN-1999 release
are:
ALPHA-DIGITAL-UNIX
HP
NEXT
PC-LINUX
PC-MS
SGI-IRIX-N32
SGI-IRIX-NO2
SUN-SOLARIS
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
B.V. Semenov (JPL)
E.D. Wright (JPL)
-Version
-CSPICE Version 4.2.0, 09-APR-2014 (EDW) (BVS)
Added include for SpiceZrnm.h to eliminate symbol conflict
encountered from Icy and JNISpice under OS X 10.7.
Minor text format correction to eliminate error signal from
OS X cpp. The edit removes leading whitespace from the
final "#endif".
Updated for:
PC-CYGWIN-64BIT-GCC_C
environment. Added the corresponding tag:
CSPICE_PC_CYGWIN_64BIT_GCC
tag to the #ifdefs set.
-CSPICE Version 4.1.0, 14-MAY-2010 (EDW)(BVS)
Updated for:
MAC-OSX-64BIT-INTEL_C
SUN-SOLARIS-64BIT-NATIVE_C
SUN-SOLARIS-INTEL-64BIT-CC_C
environments. Added the corresponding tags:
CSPICE_MAC_OSX_INTEL_64BIT_GCC
CSPICE_SUN_SOLARIS_64BIT_NATIVE
CSPICE_SUN_SOLARIS_INTEL_64BIT_CC
tag to the #ifdefs set.
-CSPICE Version 4.0.0, 21-FEB-2006 (NJB)
Updated to support the PC Linux 64 bit mode/gcc platform.
-CSPICE Version 3.0.0, 27-JAN-2003 (NJB)
Updated to support the Sun Solaris 64 bit mode/gcc platform.
-CSPICE Version 2.0.0, 19-DEC-2001 (NJB)
Updated to support linking CSPICE into executables that
also link in objects compiled from Fortran, in particular
ones that perform Fortran I/O. To enable this odd mix,
one defines the preprocessor flag
MIX_C_AND_FORTRAN
This macro is undefined by default, since the action it invokes
is usually not desirable. See the header
f2cMang.h
for further information.
-CSPICE Version 1.0.0, 07-FEB-1999 (NJB)
*/
/*
Include those rename assignments for routines whose symbols will
collide with other libraries.
*/
#ifndef HAVE_SPICERENAME_H
#include "SpiceZrnm.h"
#endif
/*
Optionally include name-mangling macros for f2c external symbols.
*/
#ifdef MIX_C_AND_FORTRAN
#include "f2cMang.h"
#endif
/*
Include CSPICE platform macro definitions.
*/
#include "SpiceZpl.h"
#if ( defined(CSPICE_ALPHA_DIGITAL_UNIX ) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_GCC ) \
|| defined(CSPICE_SUN_SOLARIS_64BIT_NATIVE ) \
|| defined(CSPICE_MAC_OSX_INTEL_64BIT_GCC ) \
|| defined(CSPICE_SUN_SOLARIS_INTEL_64BIT_CC ) \
|| defined(CSPICE_PC_CYGWIN_64BIT_GCC ) \
|| defined(CSPICE_PC_LINUX_64BIT_GCC ) )
/*
MODIFICATION
The following code is intended to be used on the platforms where
a long is the size of a double and an int is half the
size of a double.
Note that the comment line below indicating that the header is
"Standard" has been retained from the original, but is no longer
true.
*/
/* f2c.h -- Standard Fortran to C header file */
#ifndef F2C_INCLUDE
#define F2C_INCLUDE
typedef int integer;
typedef unsigned uinteger;
typedef char *address;
typedef short int shortint;
typedef float real;
typedef double doublereal;
typedef struct { real r, i; } complex;
typedef struct { doublereal r, i; } doublecomplex;
typedef int logical;
typedef short int shortlogical;
typedef char logical1;
typedef char integer1;
#if 0 /* Adjust for integer*8. */
typedef long longint; /* system-dependent */
typedef unsigned long ulongint; /* system-dependent */
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
#endif
#define TRUE_ (1)
#define FALSE_ (0)
/* Extern is for use with -E */
#ifndef Extern
#define Extern extern
#endif
/* I/O stuff */
#ifdef f2c_i2
/* for -i2 */
typedef short flag;
typedef short ftnlen;
typedef short ftnint;
#else
typedef int flag;
typedef int ftnlen;
typedef int ftnint;
#endif
/*external read, write*/
typedef struct
{ flag cierr;
ftnint ciunit;
flag ciend;
char *cifmt;
ftnint cirec;
} cilist;
/*internal read, write*/
typedef struct
{ flag icierr;
char *iciunit;
flag iciend;
char *icifmt;
ftnint icirlen;
ftnint icirnum;
} icilist;
/*open*/
typedef struct
{ flag oerr;
ftnint ounit;
char *ofnm;
ftnlen ofnmlen;
char *osta;
char *oacc;
char *ofm;
ftnint orl;
char *oblnk;
} olist;
/*close*/
typedef struct
{ flag cerr;
ftnint cunit;
char *csta;
} cllist;
/*rewind, backspace, endfile*/
typedef struct
{ flag aerr;
ftnint aunit;
} alist;
/* inquire */
typedef struct
{ flag inerr;
ftnint inunit;
char *infile;
ftnlen infilen;
ftnint *inex; /*parameters in standard's order*/
ftnint *inopen;
ftnint *innum;
ftnint *innamed;
char *inname;
ftnlen innamlen;
char *inacc;
ftnlen inacclen;
char *inseq;
ftnlen inseqlen;
char *indir;
ftnlen indirlen;
char *infmt;
ftnlen infmtlen;
char *inform;
ftnint informlen;
char *inunf;
ftnlen inunflen;
ftnint *inrecl;
ftnint *innrec;
char *inblank;
ftnlen inblanklen;
} inlist;
#define VOID void
union Multitype { /* for multiple entry points */
integer1 g;
shortint h;
integer i;
/* longint j; */
real r;
doublereal d;
complex c;
doublecomplex z;
};
typedef union Multitype Multitype;
/*typedef int Long;*/ /* No longer used; formerly in Namelist */
struct Vardesc { /* for Namelist */
char *name;
char *addr;
ftnlen *dims;
int type;
};
typedef struct Vardesc Vardesc;
struct Namelist {
char *name;
Vardesc **vars;
int nvars;
};
typedef struct Namelist Namelist;
#define abs(x) ((x) >= 0 ? (x) : -(x))
#define dabs(x) (doublereal)abs(x)
#define min(a,b) ((a) <= (b) ? (a) : (b))
#define max(a,b) ((a) >= (b) ? (a) : (b))
#define dmin(a,b) (doublereal)min(a,b)
#define dmax(a,b) (doublereal)max(a,b)
#define bit_test(a,b) ((a) >> (b) & 1)
#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
/* procedure parameter types for -A and -C++ */
#define F2C_proc_par_types 1
#ifdef __cplusplus
typedef int /* Unknown procedure type */ (*U_fp)(...);
typedef shortint (*J_fp)(...);
typedef integer (*I_fp)(...);
typedef real (*R_fp)(...);
typedef doublereal (*D_fp)(...), (*E_fp)(...);
typedef /* Complex */ VOID (*C_fp)(...);
typedef /* Double Complex */ VOID (*Z_fp)(...);
typedef logical (*L_fp)(...);
typedef shortlogical (*K_fp)(...);
typedef /* Character */ VOID (*H_fp)(...);
typedef /* Subroutine */ int (*S_fp)(...);
#else
typedef int /* Unknown procedure type */ (*U_fp)();
typedef shortint (*J_fp)();
typedef integer (*I_fp)();
typedef real (*R_fp)();
typedef doublereal (*D_fp)(), (*E_fp)();
typedef /* Complex */ VOID (*C_fp)();
typedef /* Double Complex */ VOID (*Z_fp)();
typedef logical (*L_fp)();
typedef shortlogical (*K_fp)();
typedef /* Character */ VOID (*H_fp)();
typedef /* Subroutine */ int (*S_fp)();
#endif
/* E_fp is for real functions when -R is not specified */
typedef VOID C_f; /* complex function */
typedef VOID H_f; /* character function */
typedef VOID Z_f; /* double complex function */
typedef doublereal E_f; /* real function with -R not specified */
/* undef any lower-case symbols that your C compiler predefines, e.g.: */
#ifndef Skip_f2c_Undefs
#undef cray
#undef gcos
#undef mc68010
#undef mc68020
#undef mips
#undef pdp11
#undef sgi
#undef sparc
#undef sun
#undef sun2
#undef sun3
#undef sun4
#undef u370
#undef u3b
#undef u3b2
#undef u3b5
#undef unix
#undef vax
#endif
#endif
/*
This marks the end of the MODIFICATION section version of f2c.h.
*/
#else
/*
The following code is the standard f2c.h header. In this
header, an "integer" is defined to be of type long.
Because the code is copied verbatim, it does not follow the usual
CSPICE indentation pattern.
*/
/* f2c.h -- Standard Fortran to C header file */
#ifndef F2C_INCLUDE
#define F2C_INCLUDE
typedef long int integer;
typedef unsigned long uinteger;
typedef char *address;
typedef short int shortint;
typedef float real;
typedef double doublereal;
typedef struct { real r, i; } complex;
typedef struct { doublereal r, i; } doublecomplex;
typedef long int logical;
typedef short int shortlogical;
typedef char logical1;
typedef char integer1;
#if 0 /* Adjust for integer*8. */
typedef long long longint; /* system-dependent */
typedef unsigned long long ulongint; /* system-dependent */
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
#endif
#define TRUE_ (1)
#define FALSE_ (0)
/* Extern is for use with -E */
#ifndef Extern
#define Extern extern
#endif
/* I/O stuff */
#ifdef f2c_i2
/* for -i2 */
typedef short flag;
typedef short ftnlen;
typedef short ftnint;
#else
typedef long int flag;
typedef long int ftnlen;
typedef long int ftnint;
#endif
/*external read, write*/
typedef struct
{ flag cierr;
ftnint ciunit;
flag ciend;
char *cifmt;
ftnint cirec;
} cilist;
/*internal read, write*/
typedef struct
{ flag icierr;
char *iciunit;
flag iciend;
char *icifmt;
ftnint icirlen;
ftnint icirnum;
} icilist;
/*open*/
typedef struct
{ flag oerr;
ftnint ounit;
char *ofnm;
ftnlen ofnmlen;
char *osta;
char *oacc;
char *ofm;
ftnint orl;
char *oblnk;
} olist;
/*close*/
typedef struct
{ flag cerr;
ftnint cunit;
char *csta;
} cllist;
/*rewind, backspace, endfile*/
typedef struct
{ flag aerr;
ftnint aunit;
} alist;
/* inquire */
typedef struct
{ flag inerr;
ftnint inunit;
char *infile;
ftnlen infilen;
ftnint *inex; /*parameters in standard's order*/
ftnint *inopen;
ftnint *innum;
ftnint *innamed;
char *inname;
ftnlen innamlen;
char *inacc;
ftnlen inacclen;
char *inseq;
ftnlen inseqlen;
char *indir;
ftnlen indirlen;
char *infmt;
ftnlen infmtlen;
char *inform;
ftnint informlen;
char *inunf;
ftnlen inunflen;
ftnint *inrecl;
ftnint *innrec;
char *inblank;
ftnlen inblanklen;
} inlist;
#define VOID void
union Multitype { /* for multiple entry points */
integer1 g;
shortint h;
integer i;
/* longint j; */
real r;
doublereal d;
complex c;
doublecomplex z;
};
typedef union Multitype Multitype;
/*typedef long int Long;*/ /* No longer used; formerly in Namelist */
struct Vardesc { /* for Namelist */
char *name;
char *addr;
ftnlen *dims;
int type;
};
typedef struct Vardesc Vardesc;
struct Namelist {
char *name;
Vardesc **vars;
int nvars;
};
typedef struct Namelist Namelist;
#define abs(x) ((x) >= 0 ? (x) : -(x))
#define dabs(x) (doublereal)abs(x)
#define min(a,b) ((a) <= (b) ? (a) : (b))
#define max(a,b) ((a) >= (b) ? (a) : (b))
#define dmin(a,b) (doublereal)min(a,b)
#define dmax(a,b) (doublereal)max(a,b)
#define bit_test(a,b) ((a) >> (b) & 1)
#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
/* procedure parameter types for -A and -C++ */
#define F2C_proc_par_types 1
#ifdef __cplusplus
typedef int /* Unknown procedure type */ (*U_fp)(...);
typedef shortint (*J_fp)(...);
typedef integer (*I_fp)(...);
typedef real (*R_fp)(...);
typedef doublereal (*D_fp)(...), (*E_fp)(...);
typedef /* Complex */ VOID (*C_fp)(...);
typedef /* Double Complex */ VOID (*Z_fp)(...);
typedef logical (*L_fp)(...);
typedef shortlogical (*K_fp)(...);
typedef /* Character */ VOID (*H_fp)(...);
typedef /* Subroutine */ int (*S_fp)(...);
#else
typedef int /* Unknown procedure type */ (*U_fp)();
typedef shortint (*J_fp)();
typedef integer (*I_fp)();
typedef real (*R_fp)();
typedef doublereal (*D_fp)(), (*E_fp)();
typedef /* Complex */ VOID (*C_fp)();
typedef /* Double Complex */ VOID (*Z_fp)();
typedef logical (*L_fp)();
typedef shortlogical (*K_fp)();
typedef /* Character */ VOID (*H_fp)();
typedef /* Subroutine */ int (*S_fp)();
#endif
/* E_fp is for real functions when -R is not specified */
typedef VOID C_f; /* complex function */
typedef VOID H_f; /* character function */
typedef VOID Z_f; /* double complex function */
typedef doublereal E_f; /* real function with -R not specified */
/* undef any lower-case symbols that your C compiler predefines, e.g.: */
#ifndef Skip_f2c_Undefs
#undef cray
#undef gcos
#undef mc68010
#undef mc68020
#undef mips
#undef pdp11
#undef sgi
#undef sparc
#undef sun
#undef sun2
#undef sun3
#undef sun4
#undef u370
#undef u3b
#undef u3b2
#undef u3b5
#undef unix
#undef vax
#endif
#endif
#endif

View File

@@ -1,390 +0,0 @@
/*
-Header_File f2cMang.h ( f2c external symbol mangling )
-Abstract
Define macros that mangle the external symbols in the f2c F77 and I77
libraries.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header supports linking CSPICE into executables that
also link in objects compiled from Fortran, in particular
ones that perform Fortran I/O. To enable this odd mix,
one defines the preprocessor flag
MIX_C_AND_FORTRAN
This macro is undefined by default, since the action it invokes
is usually not desirable. When the flag is defined, this header
defines macros that mangle the f2c library external symbols:
the symbol
xxx
gets mapped to
xxx_f2c
This mangling prevents name collisions between the f2c
implementations of the F77 and I77 library routines and those
in the corresponding Fortran libraries on a host system.
The set of external symbols defined in the f2c libraries can
be determined by combining objects from both F77 and I77 into
a single Unix archive libarary, then running the Unix utility
nm on the that archive. If available, an nm option that selects
only external symbols should be invoked.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
1) It is recommended that use of the features implemented by this
header be avoided if at all possible. There are robustness and
portability problems associated with linking Fortran and C objects
together in one executable.
2) When f2c external symbol name mangling is invoked, objects
derived from C code translated from Fortran by f2c won't
link against CSPICE any longer, if these objects reference
the standard f2c external symbols.
3) The features implemented by this header have been tested only
under the Sun Solaris GCC, Sun Solaris native ANSI C, and
PC/Linux/gcc environments.
-Version
-CSPICE Version 2.0.1, 07-MAR-2009 (NJB)
Restrictions header section was updated to note successful
testing on the PC/Linux/gcc platform.
-CSPICE Version 2.0.0, 19-DEC-2001 (NJB)
*/
/*
Define masking macros for f2c external symbols.
*/
#ifdef MIX_C_AND_FORTRAN
/*
Define the macros only once, if they need to be defined.
*/
#ifndef F2C_MANGLING_DONE
#define F77_aloc F77_aloc_f2c
#define F_err F_err_f2c
#define L_len L_len_f2c
#define abort_ abort__f2c
#define b_char b_char_f2c
#define c_abs c_abs_f2c
#define c_cos c_cos_f2c
#define c_dfe c_dfe_f2c
#define c_div c_div_f2c
#define c_due c_due_f2c
#define c_exp c_exp_f2c
#define c_le c_le_f2c
#define c_log c_log_f2c
#define c_sfe c_sfe_f2c
#define c_si c_si_f2c
#define c_sin c_sin_f2c
#define c_sqrt c_sqrt_f2c
#define c_sue c_sue_f2c
#define d_abs d_abs_f2c
#define d_acos d_acos_f2c
#define d_asin d_asin_f2c
#define d_atan d_atan_f2c
#define d_atn2 d_atn2_f2c
#define d_cnjg d_cnjg_f2c
#define d_cos d_cos_f2c
#define d_cosh d_cosh_f2c
#define d_dim d_dim_f2c
#define d_exp d_exp_f2c
#define d_imag d_imag_f2c
#define d_int d_int_f2c
#define d_lg10 d_lg10_f2c
#define d_log d_log_f2c
#define d_mod d_mod_f2c
#define d_nint d_nint_f2c
#define d_prod d_prod_f2c
#define d_sign d_sign_f2c
#define d_sin d_sin_f2c
#define d_sinh d_sinh_f2c
#define d_sqrt d_sqrt_f2c
#define d_tan d_tan_f2c
#define d_tanh d_tanh_f2c
#define derf_ derf__f2c
#define derfc_ derfc__f2c
#define do_fio do_fio_f2c
#define do_lio do_lio_f2c
#define do_ud do_ud_f2c
#define do_uio do_uio_f2c
#define do_us do_us_f2c
#define dtime_ dtime__f2c
#define e_rdfe e_rdfe_f2c
#define e_rdue e_rdue_f2c
#define e_rsfe e_rsfe_f2c
#define e_rsfi e_rsfi_f2c
#define e_rsle e_rsle_f2c
#define e_rsli e_rsli_f2c
#define e_rsue e_rsue_f2c
#define e_wdfe e_wdfe_f2c
#define e_wdue e_wdue_f2c
#define e_wsfe e_wsfe_f2c
#define e_wsfi e_wsfi_f2c
#define e_wsle e_wsle_f2c
#define e_wsli e_wsli_f2c
#define e_wsue e_wsue_f2c
#define ef1asc_ ef1asc__f2c
#define ef1cmc_ ef1cmc__f2c
#define en_fio en_fio_f2c
#define erf_ erf__f2c
#define erfc_ erfc__f2c
#define err__fl err__fl_f2c
#define etime_ etime__f2c
#define exit_ exit__f2c
#define f__Aquote f__Aquote_f2c
#define f__buflen f__buflen_f2c
#define f__cabs f__cabs_f2c
#define f__canseek f__canseek_f2c
#define f__cblank f__cblank_f2c
#define f__cf f__cf_f2c
#define f__cnt f__cnt_f2c
#define f__cp f__cp_f2c
#define f__cplus f__cplus_f2c
#define f__cursor f__cursor_f2c
#define f__curunit f__curunit_f2c
#define f__doed f__doed_f2c
#define f__doend f__doend_f2c
#define f__doned f__doned_f2c
#define f__donewrec f__donewrec_f2c
#define f__dorevert f__dorevert_f2c
#define f__elist f__elist_f2c
#define f__external f__external_f2c
#define f__fatal f__fatal_f2c
#define f__fmtbuf f__fmtbuf_f2c
#define f__formatted f__formatted_f2c
#define f__getn f__getn_f2c
#define f__hiwater f__hiwater_f2c
#define f__icend f__icend_f2c
#define f__icnum f__icnum_f2c
#define f__icptr f__icptr_f2c
#define f__icvt f__icvt_f2c
#define f__init f__init_f2c
#define f__inode f__inode_f2c
#define f__lchar f__lchar_f2c
#define f__lcount f__lcount_f2c
#define f__lioproc f__lioproc_f2c
#define f__lquit f__lquit_f2c
#define f__ltab f__ltab_f2c
#define f__ltype f__ltype_f2c
#define f__lx f__lx_f2c
#define f__ly f__ly_f2c
#define f__nonl f__nonl_f2c
#define f__nowreading f__nowreading_f2c
#define f__nowwriting f__nowwriting_f2c
#define f__parenlvl f__parenlvl_f2c
#define f__pc f__pc_f2c
#define f__putbuf f__putbuf_f2c
#define f__putn f__putn_f2c
#define f__r_mode f__r_mode_f2c
#define f__reading f__reading_f2c
#define f__reclen f__reclen_f2c
#define f__recloc f__recloc_f2c
#define f__recpos f__recpos_f2c
#define f__ret f__ret_f2c
#define f__revloc f__revloc_f2c
#define f__rp f__rp_f2c
#define f__scale f__scale_f2c
#define f__sequential f__sequential_f2c
#define f__svic f__svic_f2c
#define f__typesize f__typesize_f2c
#define f__units f__units_f2c
#define f__w_mode f__w_mode_f2c
#define f__workdone f__workdone_f2c
#define f_back f_back_f2c
#define f_clos f_clos_f2c
#define f_end f_end_f2c
#define f_exit f_exit_f2c
#define f_init f_init_f2c
#define f_inqu f_inqu_f2c
#define f_open f_open_f2c
#define f_rew f_rew_f2c
#define fk_open fk_open_f2c
#define flush_ flush__f2c
#define fmt_bg fmt_bg_f2c
#define fseek_ fseek__f2c
#define ftell_ ftell__f2c
#define g_char g_char_f2c
#define getenv_ getenv__f2c
#define h_abs h_abs_f2c
#define h_dim h_dim_f2c
#define h_dnnt h_dnnt_f2c
#define h_indx h_indx_f2c
#define h_len h_len_f2c
#define h_mod h_mod_f2c
#define h_nint h_nint_f2c
#define h_sign h_sign_f2c
#define hl_ge hl_ge_f2c
#define hl_gt hl_gt_f2c
#define hl_le hl_le_f2c
#define hl_lt hl_lt_f2c
#define i_abs i_abs_f2c
#define i_dim i_dim_f2c
#define i_dnnt i_dnnt_f2c
#define i_indx i_indx_f2c
#define i_len i_len_f2c
#define i_mod i_mod_f2c
#define i_nint i_nint_f2c
#define i_sign i_sign_f2c
#define iw_rev iw_rev_f2c
#define l_eof l_eof_f2c
#define l_ge l_ge_f2c
#define l_getc l_getc_f2c
#define l_gt l_gt_f2c
#define l_le l_le_f2c
#define l_lt l_lt_f2c
#define l_read l_read_f2c
#define l_ungetc l_ungetc_f2c
#define l_write l_write_f2c
#define lbit_bits lbit_bits_f2c
#define lbit_cshift lbit_cshift_f2c
#define lbit_shift lbit_shift_f2c
#define mk_hashtab mk_hashtab_f2c
#define nml_read nml_read_f2c
#define pars_f pars_f_f2c
#define pow_ci pow_ci_f2c
#define pow_dd pow_dd_f2c
#define pow_di pow_di_f2c
#define pow_hh pow_hh_f2c
#define pow_ii pow_ii_f2c
#define pow_ri pow_ri_f2c
#define pow_zi pow_zi_f2c
#define pow_zz pow_zz_f2c
#define r_abs r_abs_f2c
#define r_acos r_acos_f2c
#define r_asin r_asin_f2c
#define r_atan r_atan_f2c
#define r_atn2 r_atn2_f2c
#define r_cnjg r_cnjg_f2c
#define r_cos r_cos_f2c
#define r_cosh r_cosh_f2c
#define r_dim r_dim_f2c
#define r_exp r_exp_f2c
#define r_imag r_imag_f2c
#define r_int r_int_f2c
#define r_lg10 r_lg10_f2c
#define r_log r_log_f2c
#define r_mod r_mod_f2c
#define r_nint r_nint_f2c
#define r_sign r_sign_f2c
#define r_sin r_sin_f2c
#define r_sinh r_sinh_f2c
#define r_sqrt r_sqrt_f2c
#define r_tan r_tan_f2c
#define r_tanh r_tanh_f2c
#define rd_ed rd_ed_f2c
#define rd_ned rd_ned_f2c
#define s_cat s_cat_f2c
#define s_cmp s_cmp_f2c
#define s_copy s_copy_f2c
#define s_paus s_paus_f2c
#define s_rdfe s_rdfe_f2c
#define s_rdue s_rdue_f2c
#define s_rnge s_rnge_f2c
#define s_rsfe s_rsfe_f2c
#define s_rsfi s_rsfi_f2c
#define s_rsle s_rsle_f2c
#define s_rsli s_rsli_f2c
#define s_rsne s_rsne_f2c
#define s_rsni s_rsni_f2c
#define s_rsue s_rsue_f2c
#define s_stop s_stop_f2c
#define s_wdfe s_wdfe_f2c
#define s_wdue s_wdue_f2c
#define s_wsfe s_wsfe_f2c
#define s_wsfi s_wsfi_f2c
#define s_wsle s_wsle_f2c
#define s_wsli s_wsli_f2c
#define s_wsne s_wsne_f2c
#define s_wsni s_wsni_f2c
#define s_wsue s_wsue_f2c
#define sig_die sig_die_f2c
#define signal_ signal__f2c
#define system_ system__f2c
#define t_getc t_getc_f2c
#define t_runc t_runc_f2c
#define w_ed w_ed_f2c
#define w_ned w_ned_f2c
#define wrt_E wrt_E_f2c
#define wrt_F wrt_F_f2c
#define wrt_L wrt_L_f2c
#define x_endp x_endp_f2c
#define x_getc x_getc_f2c
#define x_putc x_putc_f2c
#define x_rev x_rev_f2c
#define x_rsne x_rsne_f2c
#define x_wSL x_wSL_f2c
#define x_wsne x_wsne_f2c
#define xrd_SL xrd_SL_f2c
#define y_getc y_getc_f2c
#define y_rsk y_rsk_f2c
#define z_abs z_abs_f2c
#define z_cos z_cos_f2c
#define z_div z_div_f2c
#define z_exp z_exp_f2c
#define z_getc z_getc_f2c
#define z_log z_log_f2c
#define z_putc z_putc_f2c
#define z_rnew z_rnew_f2c
#define z_sin z_sin_f2c
#define z_sqrt z_sqrt_f2c
#define z_wnew z_wnew_f2c
#define F2C_MANGLING_DONE
#endif
#endif

View File

@@ -1,107 +0,0 @@
#include "stdio.h"
#include "errno.h"
#ifndef NULL
/* ANSI C */
#include "stddef.h"
#endif
#ifndef SEEK_SET
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2
#endif
#ifdef MSDOS
#ifndef NON_UNIX_STDIO
#define NON_UNIX_STDIO
#endif
#endif
#ifdef UIOLEN_int
typedef int uiolen;
#else
typedef long uiolen;
#endif
/*units*/
typedef struct
{ FILE *ufd; /*0=unconnected*/
char *ufnm;
#ifndef MSDOS
long uinode;
int udev;
#endif
int url; /*0=sequential*/
flag useek; /*true=can backspace, use dir, ...*/
flag ufmt;
flag urw; /* (1 for can read) | (2 for can write) */
flag ublnk;
flag uend;
flag uwrt; /*last io was write*/
flag uscrtch;
} unit;
extern flag f__init;
extern cilist *f__elist; /*active external io list*/
extern flag f__reading,f__external,f__sequential,f__formatted;
#undef Void
#ifdef KR_headers
#define Void /*void*/
extern int (*f__getn)(); /* for formatted input */
extern void (*f__putn)(); /* for formatted output */
extern void x_putc();
extern long f__inode();
extern VOID sig_die();
extern int (*f__donewrec)(), t_putc(), x_wSL();
extern int c_sfe(), err__fl(), xrd_SL(), f__putbuf();
#else
#define Void void
#ifdef __cplusplus
extern "C" {
#endif
extern int (*f__getn)(void); /* for formatted input */
extern void (*f__putn)(int); /* for formatted output */
extern void x_putc(int);
extern long f__inode(char*,int*);
extern void sig_die(char*,int);
extern void f__fatal(int,char*);
extern int t_runc(alist*);
extern int f__nowreading(unit*), f__nowwriting(unit*);
extern int fk_open(int,int,ftnint);
extern int en_fio(void);
extern void f_init(void);
extern int (*f__donewrec)(void), t_putc(int), x_wSL(void);
extern void b_char(char*,char*,ftnlen), g_char(char*,ftnlen,char*);
extern int c_sfe(cilist*), z_rnew(void);
extern int isatty(int);
extern int err__fl(int,int,char*);
extern int xrd_SL(void);
extern int f__putbuf(int);
#ifdef __cplusplus
}
#endif
#endif
extern int (*f__doend)(Void);
extern FILE *f__cf; /*current file*/
extern unit *f__curunit; /*current unit*/
extern unit f__units[];
#define err(f,m,s) {if(f) errno= m; else f__fatal(m,s); return(m);}
#define errfl(f,m,s) return err__fl((int)f,m,s)
/*Table sizes*/
#define MXUNIT 100
extern int f__recpos; /*position in current record*/
extern int f__cursor; /* offset to move to */
extern int f__hiwater; /* so TL doesn't confuse us */
#define WRITE 1
#define READ 2
#define SEQ 3
#define DIR 4
#define FMT 5
#define UNF 6
#define EXT 7
#define INT 8
#define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)

View File

@@ -1,100 +0,0 @@
struct syl
{ int op;
int p1;
union { int i[2]; char *s;} p2;
};
#define RET1 1
#define REVERT 2
#define GOTO 3
#define X 4
#define SLASH 5
#define STACK 6
#define I 7
#define ED 8
#define NED 9
#define IM 10
#define APOS 11
#define H 12
#define TL 13
#define TR 14
#define T 15
#define COLON 16
#define S 17
#define SP 18
#define SS 19
#define P 20
#define BN 21
#define BZ 22
#define F 23
#define E 24
#define EE 25
#define D 26
#define G 27
#define GE 28
#define L 29
#define A 30
#define AW 31
#define O 32
#define NONL 33
#define OM 34
#define Z 35
#define ZM 36
extern int f__pc,f__parenlvl,f__revloc;
typedef union
{ real pf;
doublereal pd;
} ufloat;
typedef union
{ short is;
#ifndef KR_headers
signed
#endif
char ic;
integer il;
#ifdef Allow_TYQUAD
longint ili;
#endif
} Uint;
#ifdef KR_headers
extern int (*f__doed)(),(*f__doned)();
extern int (*f__dorevert)();
extern int rd_ed(),rd_ned();
extern int w_ed(),w_ned();
#else
#ifdef __cplusplus
extern "C" {
#endif
extern int (*f__doed)(struct syl*, char*, ftnlen),(*f__doned)(struct syl*);
extern int (*f__dorevert)(void);
extern void fmt_bg(void);
extern int pars_f(char*);
extern int rd_ed(struct syl*, char*, ftnlen),rd_ned(struct syl*);
extern int w_ed(struct syl*, char*, ftnlen),w_ned(struct syl*);
extern int wrt_E(ufloat*, int, int, int, ftnlen);
extern int wrt_F(ufloat*, int, int, ftnlen);
extern int wrt_L(Uint*, int, ftnlen);
#ifdef __cplusplus
}
#endif
#endif
extern flag f__cblank,f__cplus,f__workdone, f__nonl;
extern char *f__fmtbuf;
extern int f__scale;
#define GET(x) if((x=(*f__getn)())<0) return(x)
#define VAL(x) (x!='\n'?x:' ')
#define PUT(x) (*f__putn)(x)
extern int f__cursor;
#undef TYQUAD
#ifndef Allow_TYQUAD
#undef longint
#define longint long
#else
#define TYQUAD 14
#endif
#ifdef KR_headers
extern char *f__icvt();
#else
extern char *f__icvt(longint, int*, int*, int);
#endif

View File

@@ -1,28 +0,0 @@
#define FMAX 40
#define EXPMAXDIGS 8
#define EXPMAX 99999999
/* FMAX = max number of nonzero digits passed to atof() */
/* EXPMAX = 10^EXPMAXDIGS - 1 = largest allowed exponent absolute value */
#ifdef V10 /* Research Tenth-Edition Unix */
#include "local.h"
#endif
/* MAXFRACDIGS and MAXINTDIGS are for wrt_F -- bounds (not necessarily
tight) on the maximum number of digits to the right and left of
* the decimal point.
*/
#ifdef VAX
#define MAXFRACDIGS 56
#define MAXINTDIGS 38
#else
#ifdef CRAY
#define MAXFRACDIGS 9880
#define MAXINTDIGS 9864
#else
/* values that suffice for IEEE double */
#define MAXFRACDIGS 344
#define MAXINTDIGS 308
#endif
#endif

View File

@@ -1,74 +0,0 @@
/* copy of ftypes from the compiler */
/* variable types
* numeric assumptions:
* int < reals < complexes
* TYDREAL-TYREAL = TYDCOMPLEX-TYCOMPLEX
*/
/* 0-10 retain their old (pre LOGICAL*1, etc.) */
/* values to allow mixing old and new objects. */
#define TYUNKNOWN 0
#define TYADDR 1
#define TYSHORT 2
#define TYLONG 3
#define TYREAL 4
#define TYDREAL 5
#define TYCOMPLEX 6
#define TYDCOMPLEX 7
#define TYLOGICAL 8
#define TYCHAR 9
#define TYSUBR 10
#define TYINT1 11
#define TYLOGICAL1 12
#define TYLOGICAL2 13
#ifdef Allow_TYQUAD
#undef TYQUAD
#define TYQUAD 14
#endif
#define LINTW 24
#define LINE 80
#define LLOGW 2
#ifdef Old_list_output
#define LLOW 1.0
#define LHIGH 1.e9
#define LEFMT " %# .8E"
#define LFFMT " %# .9g"
#else
#define LGFMT "%.9G"
#endif
/* LEFBL 20 should suffice; 24 overcomes a NeXT bug. */
#define LEFBL 24
typedef union
{
char flchar;
short flshort;
ftnint flint;
#ifdef Allow_TYQUAD
longint fllongint;
#endif
real flreal;
doublereal fldouble;
} flex;
extern int f__scale;
#ifdef KR_headers
extern int (*f__lioproc)(), (*l_getc)(), (*l_ungetc)();
extern int l_read(), l_write();
#else
#ifdef __cplusplus
extern "C" {
#endif
extern int (*f__lioproc)(ftnint*, char*, ftnlen, ftnint);
extern int l_write(ftnint*, char*, ftnlen, ftnint);
extern void x_wsne(cilist*);
extern int c_le(cilist*), (*l_getc)(void), (*l_ungetc)(int,FILE*);
extern int l_read(ftnint*,char*,ftnlen,ftnint);
extern integer e_rsle(void), e_wsle(void), s_wsne(cilist*);
extern int z_rnew(void);
#ifdef __cplusplus
}
#endif
#endif
extern ftnint L_len;

View File

@@ -1,41 +0,0 @@
#ifndef KR_headers
#ifdef MSDOS
#include "io.h"
#ifndef WATCOM
#define close _close
#define creat _creat
#define open _open
#define read _read
#define write _write
#endif /*WATCOM*/
#endif /*MSDOS*/
#ifdef __cplusplus
extern "C" {
#endif
#ifndef MSDOS
#ifdef OPEN_DECL
extern int creat(const char*,int), open(const char*,int);
#endif
extern int close(int);
extern int read(int,void*,size_t), write(int,void*,size_t);
extern int unlink(const char*);
#ifndef _POSIX_SOURCE
#ifndef NON_UNIX_STDIO
extern FILE *fdopen(int, const char*);
#endif
#endif
#endif /*KR_HEADERS*/
extern char *mktemp(char*);
#ifdef __cplusplus
}
#endif
#endif
#include "fcntl.h"
#ifndef O_WRONLY
#define O_RDONLY 0
#define O_WRONLY 1
#endif

View File

@@ -1,118 +0,0 @@
/*
-Header_File signal1.h (CSPICE version of the f2c signal1.h header file)
-Abstract
Define macros associated with signal handling, customized for the
host environment.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Required_Reading
None.
-Particulars
This header defines the macro signal1 referenced in main.c,
which is a generic main routine used in CSPICE executables that
link to code generated by f2c.
-Literature_References
None.
-Author_and_Institution
N.J. Bachman (JPL)
-Restrictions
1) This header file must be updated whenever the f2c processor
or the f2c libraries libI77 and libF77 are updated.
2) This header may need to be updated to support new platforms.
The supported platforms at the time of the 03-FEB-2000 release
are:
ALPHA-DIGITAL-UNIX_C
HP_C
NEXT_C
PC-LINUX_C
PC-MS_C
SGI-IRIX-N32_C
SGI-IRIX-NO2_C
SUN-SOLARIS-GCC_C
SUN-SOLARIS-NATIVE_C
-Version
-CSPICE Version 1.0.0, 03-FEB-2000 (NJB)
*/
/* You may need to adjust the definition of signal1 to supply a */
/* cast to the correct argument type. This detail is system- and */
/* compiler-dependent. The #define below assumes signal.h declares */
/* type SIG_PF for the signal function's second argument. */
#include <signal.h>
#ifndef Sigret_t
#define Sigret_t void
#endif
#ifndef Sigarg_t
#ifdef KR_headers
#define Sigarg_t
#else
#ifdef __cplusplus
#define Sigarg_t ...
#else
#define Sigarg_t int
#endif
#endif
#endif /*Sigarg_t*/
#ifdef USE_SIG_PF /* compile with -DUSE_SIG_PF under IRIX */
#define sig_pf SIG_PF
#else
typedef Sigret_t (*sig_pf)(Sigarg_t);
#endif
#define signal1(a,b) signal(a,(sig_pf)b)
#ifdef __cplusplus
#define Sigarg ...
#define Use_Sigarg
#else
#define Sigarg Int n
#define Use_Sigarg n = n /* shut up compiler warning */
#endif

View File

@@ -1,125 +0,0 @@
/*
-Abstract
The memory allocation prototypes and macros for use in CSPICE.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Particulars
The routines maintain a count of the number of mallocs vs. free,
signalling an error if any unreleased memory exists at the end
of an Icy interface call.
The macro ALLOC_CHECK performs malloc/free test. If used, the macro
should exists at the end of any routine using these memory management
routines.
Prototypes in this file:
alloc_count
zzalloc_count
alloc_SpiceMemory
alloc_SpiceString_C_array
alloc_SpiceString_C_Copy_array
alloc_SpiceDouble_C_array
alloc_SpiceInt_C_array
alloc_SpiceString
alloc_SpiceString_Pointer_array
free_SpiceString_C_array
free_SpiceMemory
-Version
CSPICE 1.0.3 02-MAY-2008 (EDW)
Added alloc_count prototype.
CSPICE 1.0.2 10-MAY-2007 (EDW)
Minor edits to clarify 'size' in alloc_SpiceMemory as
size_t.
CSPICE 1.0.1 23-JUN-2005 (EDW)
Add prototype for alloc_SpiceString_Pointer_array, allocate
an array of pointers to SpiceChar.
Icy 1.0.0 December 19, 2003 (EDW)
Initial release.
*/
#ifndef ZZALLOC_H
#define ZZALLOC_H
/*
Allocation call prototypes:
*/
int alloc_count ();
SpiceChar ** alloc_SpiceString_C_array ( int string_length,
int string_count );
SpiceChar ** alloc_SpiceString_C_Copy_array ( int array_len ,
int string_len,
SpiceChar ** array );
SpiceDouble * alloc_SpiceDouble_C_array ( int rows,
int cols );
SpiceInt * alloc_SpiceInt_C_array ( int rows,
int cols );
SpiceChar * alloc_SpiceString ( int length );
SpiceChar ** alloc_SpiceString_Pointer_array( int array_len );
void free_SpiceString_C_array ( int dim,
SpiceChar ** array );
void * alloc_SpiceMemory ( size_t size );
void free_SpiceMemory ( void * ptr );
/*
Simple macro to ensure a zero value alloc count at end of routine.
Note, the need to use this macro exists only in those routines
allocating/deallocating memory.
*/
#define ALLOC_CHECK if ( alloc_count() != 0 ) \
{ \
setmsg_c ( "Malloc/Free count not zero at end of routine." \
" Malloc count = #."); \
errint_c ( "#", alloc_count() ); \
sigerr_c ( "SPICE(MALLOCCOUNT)" ); \
}
#endif

View File

@@ -1,86 +0,0 @@
/*
-Abstract
The error control routine prototypes for use in CSPICE.
-Disclaimer
THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE
CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S.
GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE
ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE
PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS"
TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY
WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A
PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC
SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE
SOFTWARE AND RELATED MATERIALS, HOWEVER USED.
IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA
BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT
LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND,
INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS,
REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE
REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY.
RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF
THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY
CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE
ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE.
-Particulars
Routines prototyped in this file:
zzerrorinit
zzerror
-Examples
See the examples section in zzerror() and zzerrorinit().
-Restrictions
None.
-Exceptions
None.
-Files
None.
-Author_and_Institution
E. D. Wright (JPL)
-Literature_References
None.
-Version
-CSPICE 1.1.0 14-JAN-2013 (EDW)
Added parameter:
SCALAR_OP
-CSPICE 1.0.0 17-OCT-2005 (EDW)
Initial release.
*/
#ifndef ZZERROR_H
#define ZZERROR_H
const char * zzerror( long cnt );
void zzerrorinit();
#define SCALAR_OP -1
#endif

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -124,10 +124,11 @@ function (add_external_dependencies)
endif ()
# Spice
set(SPICE_ROOT_DIR "${OPENSPACE_EXT_DIR}/spice")
find_package(Spice REQUIRED)
target_include_directories(libOpenSpace SYSTEM PUBLIC ${SPICE_INCLUDE_DIRS})
target_link_libraries(libOpenSpace ${SPICE_LIBRARIES})
add_subdirectory(${OPENSPACE_EXT_DIR}/spice)
target_link_libraries(libOpenSpace Spice)
get_property(SPICE_INCLUDE_DIR TARGET Spice PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(libOpenSpace PUBLIC ${SPICE_INCLUDE_DIR})
set_property(TARGET Spice PROPERTY FOLDER "External")
# Curl
if (WIN32)