1 /* zzingrd.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  ZZINGRD  ( is a voxel inside the grid? ) */
zzingrd_(integer * nvox,integer * voxel)9 logical zzingrd_(integer *nvox, integer *voxel)
10 {
11     /* System generated locals */
12     integer i__1, i__2, i__3;
13     logical ret_val;
14 
15     /* Builtin functions */
16     integer s_rnge(char *, integer, char *, integer);
17 
18     /* Local variables */
19     integer i__;
20 
21 /* $ Abstract */
22 
23 /*     SPICE Private routine intended solely for the support of SPICE */
24 /*     routines. Users should not call this routine directly due */
25 /*     to the volatile nature of this routine. */
26 
27 /*     Return true if voxel is inside the voxel grid. This routine */
28 /*     operates on integer voxel coordinates. */
29 
30 /* $ Disclaimer */
31 
32 /*     THIS SOFTWARE AND ANY RELATED MATERIALS WERE CREATED BY THE */
33 /*     CALIFORNIA INSTITUTE OF TECHNOLOGY (CALTECH) UNDER A U.S. */
34 /*     GOVERNMENT CONTRACT WITH THE NATIONAL AERONAUTICS AND SPACE */
35 /*     ADMINISTRATION (NASA). THE SOFTWARE IS TECHNOLOGY AND SOFTWARE */
36 /*     PUBLICLY AVAILABLE UNDER U.S. EXPORT LAWS AND IS PROVIDED "AS-IS" */
37 /*     TO THE RECIPIENT WITHOUT WARRANTY OF ANY KIND, INCLUDING ANY */
38 /*     WARRANTIES OF PERFORMANCE OR MERCHANTABILITY OR FITNESS FOR A */
39 /*     PARTICULAR USE OR PURPOSE (AS SET FORTH IN UNITED STATES UCC */
40 /*     SECTIONS 2312-2313) OR FOR ANY PURPOSE WHATSOEVER, FOR THE */
41 /*     SOFTWARE AND RELATED MATERIALS, HOWEVER USED. */
42 
43 /*     IN NO EVENT SHALL CALTECH, ITS JET PROPULSION LABORATORY, OR NASA */
44 /*     BE LIABLE FOR ANY DAMAGES AND/OR COSTS, INCLUDING, BUT NOT */
45 /*     LIMITED TO, INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND, */
46 /*     INCLUDING ECONOMIC DAMAGE OR INJURY TO PROPERTY AND LOST PROFITS, */
47 /*     REGARDLESS OF WHETHER CALTECH, JPL, OR NASA BE ADVISED, HAVE */
48 /*     REASON TO KNOW, OR, IN FACT, SHALL KNOW OF THE POSSIBILITY. */
49 
50 /*     RECIPIENT BEARS ALL RISK RELATING TO QUALITY AND PERFORMANCE OF */
51 /*     THE SOFTWARE AND ANY RELATED MATERIALS, AND AGREES TO INDEMNIFY */
52 /*     CALTECH AND NASA FOR ALL THIRD-PARTY CLAIMS RESULTING FROM THE */
53 /*     ACTIONS OF RECIPIENT IN THE USE OF THE SOFTWARE. */
54 
55 /* $ Required_Reading */
56 
57 /*     None. */
58 
59 /* $ Keywords */
60 
61 /*     VOXEL */
62 
63 /* $ Declarations */
64 /* $ Brief_I/O */
65 
66 /*     VARIABLE  I/O  DESCRIPTION */
67 /*     --------  ---  -------------------------------------------------- */
68 /*     NVOX       I   Dimensions of voxel grid. */
69 /*     VOXEL      I   Coordinates of voxel in voxel grid units. */
70 
71 /*     The function returns .TRUE. if the voxel is inside the grid. */
72 
73 /* $ Detailed_Input */
74 
75 /*     NVOX       Dimensions of voxel grid. */
76 
77 /*     VOXEL      Coordinates of voxel in voxel grid units. The */
78 /*                coordinates are 1-based integers. */
79 
80 /* $ Detailed_Output */
81 
82 /*     The function returns .TRUE. if the voxel is inside the grid. */
83 
84 /* $ Parameters */
85 
86 /*     None. */
87 
88 /* $ Exceptions */
89 
90 /*     Error free. */
91 
92 /* $ Files */
93 
94 /*     None. */
95 
96 /* $ Particulars */
97 
98 /*     This routine supports the SPICELIB routine XDDA. */
99 
100 /* $ Examples */
101 
102 /*     None. */
103 
104 /* $ Restrictions */
105 
106 /*     None. */
107 
108 /* $ Literature_References */
109 
110 /*     None. */
111 
112 /* $ Author_and_Institution */
113 
114 /*     N.J. Bachman    (JPL) */
115 /*     J.A. Bytof      (JPL) */
116 
117 /* $ Version */
118 
119 /* -    SPICELIB Version 1.0.0, 02-FEB-2016 (NJB) (JAB) */
120 
121 /*        Renamed routine. */
122 
123 /*        Based on DSKLIB Version 1.0.0, 03-FEB-1999 (JAB) */
124 
125 /* -& */
126 /* $ Index_Entries */
127 
128 /*      voxel inside grid */
129 
130 /* -& */
131     ret_val = FALSE_;
132 
133 /*     Determine if voxel is outside the voxel grid */
134 /*     in any direction. */
135 
136     for (i__ = 1; i__ <= 3; ++i__) {
137 	if (voxel[(i__1 = i__ - 1) < 3 && 0 <= i__1 ? i__1 : s_rnge("voxel",
138 		i__1, "zzingrd_", (ftnlen)135)] < 1 || voxel[(i__2 = i__ - 1)
139 		< 3 && 0 <= i__2 ? i__2 : s_rnge("voxel", i__2, "zzingrd_", (
140 		ftnlen)135)] > nvox[(i__3 = i__ - 1) < 3 && 0 <= i__3 ? i__3 :
141 		 s_rnge("nvox", i__3, "zzingrd_", (ftnlen)135)]) {
142 	    return ret_val;
143 	}
144     }
145     ret_val = TRUE_;
146     return ret_val;
147 } /* zzingrd_ */
148 
149