35 const double AS2R = 4.848136811095359935899141e-6;
36 const double D2R = 1.745329251994329576923691e-2;
39 const double D180 = 3.141592653589793238462643;
42 int mount, j, iy, im, id, ih, mi;
43 double xp, yp, dut1, slon, slat, sh, pnogo, p, tc, h, fl, wl, pia,
44 pib, pvd, pca, pnp, paw, pan, ga, gb, x, y, a, b, r, sec,
45 rc, dc, pr, pd, px, rv, adem, bdem, ademb, bdemb, rdem;
54 xp = 50.995e-3 * AS2R;
55 yp = 376.723e-3 * AS2R;
59 if ( iauAf2a (
'-', 5, 41, 54.2, &slon ) )
return -1;
60 if ( iauAf2a (
'-', 15, 57, 42.8, &slat ) )
return -1;
79 pca = -110.000 * AS2R;
93 r = -179.806735 * D2R;
104 if ( iauTf2a (
' ', 14, 34, 16.81183, &rc ) )
return -1;
105 if ( iauAf2a (
'-', 12, 31, 10.3965, &dc ) )
return -1;
106 pr = atan2 ( -354.45e-3 * AS2R, cos(dc) );
107 pd = 595.35e-3 * AS2R;
117 printf (
"\nCIRCUMSTANCES\n\n" );
118 printf (
" polar motion x = %+8.3f mas\n", xp*1e3/AS2R );
119 printf (
" y = %+8.3f\n\n", yp*1e3/AS2R );
120 printf (
" UT1-UTC = %+.3f ms\n\n", dut1*1e3 );
121 printf (
" site: longitude = %+.5f deg E\n", slon/D2R );
122 printf (
" latitude = %+.5f deg\n", slat/D2R );
123 printf (
" altitude = %.3f m\n\n", sh );
124 printf (
" %s mount\n", mount ==
EQUAT ?
"equatorial" :
126 printf (
" pole avoidance = %.3f deg\n\n", pnogo/D2R );
127 printf (
" ambient air pressure = %.2f hPa\n", p );
128 printf (
" temperature = %+.3f C\n", tc );
129 printf (
" relative humidity = %.1f %%\n\n", h*100.0 );
130 printf (
" focal length = %g user units\n", fl );
131 printf (
" wavelength = %.1f nm\n\n", wl*1e3 );
132 printf (
" pointing model: IA = %+.3f arcsec\n", pia/AS2R );
133 printf (
" IB = %+.3f\n", pib/AS2R );
134 printf (
" VD = %+.3f\n", pvd/AS2R );
135 printf (
" CA = %+.3f\n", pca/AS2R );
136 printf (
" NP = %+.3f\n", pnp/AS2R );
137 printf (
" AW = %+.3f\n", paw/AS2R );
138 printf (
" AN = %+.3f\n\n", pan/AS2R );
139 printf (
" guiding correction to CA = %+.3f arcsec\n", ga/AS2R );
140 printf (
" to IB = %+.3f arcsec\n\n", gb/AS2R );
141 printf (
" hotspot x = %g user units\n", x );
142 printf (
" y = %g\n\n", y );
143 printf (
" achieved roll = %+11.6f deg\n", a/D2R );
144 printf (
" pitch = %+11.6f deg\n", b/D2R );
145 printf (
" theta = %+11.6f deg\n\n", r/D2R );
146 printf (
" UTC = %d/%2.2d/%2.2d %d:%2.2d:%06.3f\n\n",
147 iy, im,
id, ih, mi, sec );
148 printf (
" target RA = %10.6f deg\n", rc/D2R );
149 printf (
" Dec = %+10.6f\n\n", dc/D2R );
150 printf (
" proper motion in RA = %+11.7f s/y\n", pr/AS2R/15.0 );
151 printf (
" Dec = %+10.6f \"/y\n\n", pd/AS2R );
152 printf (
" parallax = %7.3f mas\n", px*1e3 );
153 printf (
" radial velocity = %+.3f km/s\n\n", rv );
161 j =
spkS2e ( xp, yp, dut1, slon, slat, sh, mount, pnogo,
162 p, tc, h, fl, wl, pia, pib, pvd, pca, pnp, paw, pan,
163 ga, gb, x, y, a, b, r, iy, im,
id, ih, mi, sec,
164 rc, dc, pr, pd, px, rv,
165 &adem, &bdem, &ademb, &bdemb, &rdem );
174 printf (
"\nRESULTS\n\n" );
175 if ( mount ==
EQUAT ) {
176 printf (
" HA,Dec,rotator demands in degrees:\n\n" );
177 printf (
" H = %+11.6f ", -
iauAnpm(adem)/D2R );
178 printf (
"D = %11.6f (normal)\n\n", bdem/D2R );
179 printf (
" Hb = %+11.6f ", -
iauAnpm(ademb)/D2R );
180 printf (
"Db = %11.6f (beyond the pole)\n\n", bdemb/D2R );
181 printf (
" R = %11.6f "
182 "(for H,D axis demands and +y north)\n",
185 printf (
" Az,El,rotator demands in degrees:\n\n" );
186 printf (
" A = %11.6f ",
iauAnp(D180-adem)/D2R );
187 printf (
"E = %+11.6f (normal)\n\n", bdem/D2R );
188 printf (
" Ab = %11.6f ",
iauAnp(D180-ademb)/D2R );
189 printf (
"Eb = %+11.6f (beyond the zenith)\n\n", bdemb/D2R );
190 printf (
" R = %11.6f "
191 "(for A,E axis demands and +y north)\n",
199 printf (
"Call to spkS2e has failed!\n" );
int spkS2e(double xp, double yp, double dut1, double slon, double slat, double sh, int mount, double pnogo, double p, double tc, double h, double fl, double wl, double pia, double pib, double pvd, double pca, double pnp, double paw, double pan, double ga, double gb, double x, double y, double a, double b, double r, int iy, int im, int id, int ih, int mi, double sec, double rc, double dc, double pr, double pd, double px, double rv, double *adem, double *bdem, double *ademb, double *bdemb, double *rdem)