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