1 /* wnfetd.f -- translated by f2c (version 19980913).
2 You must link the resulting object file with the libraries:
3 -lf2c -lm (in that order)
4 */
5
6 #include "f2c.h"
7
8 /* $Procedure WNFETD ( Fetch an interval from a DP window ) */
wnfetd_(doublereal * window,integer * n,doublereal * left,doublereal * right)9 /* Subroutine */ int wnfetd_(doublereal *window, integer *n, doublereal *left,
10 doublereal *right)
11 {
12 integer card;
13 extern integer cardd_(doublereal *);
14 extern /* Subroutine */ int chkin_(char *, ftnlen), sigerr_(char *,
15 ftnlen), chkout_(char *, ftnlen), setmsg_(char *, ftnlen);
16 extern logical return_(void);
17 integer end;
18
19 /* $ Abstract */
20
21 /* Fetch a particular interval from a double precision window. */
22
23 /* $ Disclaimer */
24
25 /* THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE */
26 /* CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S. */
27 /* GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE */
28 /* ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE */
29 /* PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS" */
30 /* TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY */
31 /* WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A */
32 /* PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC */
33 /* SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE */
34 /* SOFTWARE AND RELATED MATERIALS, HOWEVER USED. */
35
36 /* IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA */
37 /* BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT */
38 /* LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND, */
39 /* INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS, */
40 /* REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE */
41 /* REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY. */
42
43 /* RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF */
44 /* THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY */
45 /* CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE */
46 /* ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE. */
47
48 /* $ Required_Reading */
49
50 /* WINDOWS */
51
52 /* $ Keywords */
53
54 /* WINDOWS */
55
56 /* $ Declarations */
57 /* $ Brief_I/O */
58
59 /* VARIABLE I/O DESCRIPTION */
60 /* -------- --- -------------------------------------------------- */
61 /* WINDOW I Input window. */
62 /* N I Index of interval to be fetched. */
63 /* LEFT, */
64 /* RIGHT O Left, right endpoints of the Nth interval. */
65
66 /* $ Detailed_Input */
67
68 /* WINDOW is a window containing zero or more intervals. */
69
70 /* N is the index of a particular interval within the */
71 /* window. Indices range from 1 to CARD(WINDOW)/2. */
72
73 /* $ Detailed_Output */
74
75 /* LEFT, */
76 /* RIGHT are the left and right endpoints of the Nth interval */
77 /* in the input window. If the interval is not found, */
78 /* LEFT and RIGHT are not defined. */
79
80 /* $ Parameters */
81
82 /* None. */
83
84 /* $ Exceptions */
85
86 /* 1) If N is less than one, the error SPICE(NOINTERVAL) signals. */
87
88 /* 2) If the interval does not exist, i.e. N > CARD(WINDOW)/2, the */
89 /* error SPICE(NOINTERVAL) signals. */
90
91 /* $ Files */
92
93 /* None. */
94
95 /* $ Particulars */
96
97 /* None. */
98
99 /* $ Examples */
100
101 /* Let A contain the intervals */
102
103 /* [ 1, 3 ] [ 7, 11 ] [ 23, 27 ] */
104
105 /* This window has a cardinality of 6, so N may have */
106 /* value 1, 2, or 3 ( N =< CARD(WINDOW)/2 ). */
107
108 /* Then the following calls */
109
110 /* CALL WNFETD ( A, 1, LEFT, RIGHT ) [1] */
111 /* CALL WNFETD ( A, 2, LEFT, RIGHT ) [2] */
112 /* CALL WNFETD ( A, 3, LEFT, RIGHT ) [3] */
113
114 /* yield the following values of LEFT and RIGHT */
115
116 /* LEFT RIGHT */
117 /* --------- --------- */
118 /* 1 3 */
119 /* 7 11 */
120 /* 23 27 */
121
122 /* $ Restrictions */
123
124 /* None. */
125
126 /* $ Literature_References */
127
128 /* None. */
129
130 /* $ Author_and_Institution */
131
132 /* W.L. Taber (JPL) */
133 /* I.M. Underwood (JPL) */
134
135 /* $ Version */
136
137 /* - SPICELIB Version 1.0.3, 30-JUL-2007 (EDW) */
138
139 /* Removed erroneous description in the Examples section */
140 /* indicating "Undefined" as a return state after an error */
141 /* event caused by an invalid value of N. */
142
143 /* - SPICELIB Version 1.0.1, 10-MAR-1992 (WLT) */
144
145 /* Comment section for permuted index source lines was added */
146 /* following the header. */
147
148 /* - SPICELIB Version 1.0.0, 31-JAN-1990 (WLT) (IMU) */
149
150 /* -& */
151 /* $ Index_Entries */
152
153 /* fetch an interval from a d.p. window */
154
155 /* -& */
156
157 /* SPICELIB functions */
158
159
160 /* Local variables */
161
162
163 /* Set up the error processing. */
164
165 if (return_()) {
166 return 0;
167 }
168 chkin_("WNFETD", (ftnlen)6);
169
170
171 /* How many endpoints in the window? Enough? Normally, endpoints */
172 /* of the Nth interval are stored in elements 2N and 2N-1. */
173
174 card = cardd_(window);
175 end = *n << 1;
176 if (*n < 1 || card < end) {
177 setmsg_("WNFETD: No such interval.", (ftnlen)25);
178 sigerr_("SPICE(NOINTERVAL)", (ftnlen)17);
179 } else {
180 *left = window[end + 4];
181 *right = window[end + 5];
182 }
183 chkout_("WNFETD", (ftnlen)6);
184 return 0;
185 } /* wnfetd_ */
186
187