FACT++  1.0
t_erfa_c.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <erfa.h>
3 
4 static int verbose = 0;
5 
6 /*
7 ** - - - - - - - - -
8 ** t _ e r f a _ c
9 ** - - - - - - - - -
10 **
11 ** Validate the ERFA C functions.
12 **
13 ** Each ERFA function is at least called and a usually quite basic test
14 ** is performed. Successful completion is signalled by a confirming
15 ** message. Failure of a given function or group of functions results
16 ** in error messages.
17 **
18 ** All messages go to stdout.
19 **
20 ** This revision: 2015 January 30
21 **
22 */
23 
24 static void viv(int ival, int ivalok,
25  const char *func, const char *test, int *status)
26 /*
27 ** - - - -
28 ** v i v
29 ** - - - -
30 **
31 ** Validate an integer result.
32 **
33 ** Internal function used by t_erfa_c program.
34 **
35 ** Given:
36 ** ival int value computed by function under test
37 ** ivalok int correct value
38 ** func char[] name of function under test
39 ** test char[] name of individual test
40 **
41 ** Given and returned:
42 ** status int set to TRUE if test fails
43 **
44 ** This revision: 2013 August 7
45 */
46 {
47  if (ival != ivalok) {
48  *status = 1;
49  printf("%s failed: %s want %d got %d\n",
50  func, test, ivalok, ival);
51  } else if (verbose) {
52  printf("%s passed: %s want %d got %d\n",
53  func, test, ivalok, ival);
54  }
55 
56 }
57 
58 static void vvd(double val, double valok, double dval,
59  const char *func, const char *test, int *status)
60 /*
61 ** - - - -
62 ** v v d
63 ** - - - -
64 **
65 ** Validate a double result.
66 **
67 ** Internal function used by t_erfa_c program.
68 **
69 ** Given:
70 ** val double value computed by function under test
71 ** valok double expected value
72 ** dval double maximum allowable error
73 ** func char[] name of function under test
74 ** test char[] name of individual test
75 **
76 ** Given and returned:
77 ** status int set to TRUE if test fails
78 **
79 ** This revision: 2013 August 7
80 */
81 {
82  double a, f; /* absolute and fractional error */
83 
84 
85  a = val - valok;
86  if (fabs(a) > dval) {
87  f = fabs(valok / a);
88  *status = 1;
89  printf("%s failed: %s want %.20g got %.20g (1/%.3g)\n",
90  func, test, valok, val, f);
91  } else if (verbose) {
92  printf("%s passed: %s want %.20g got %.20g\n",
93  func, test, valok, val);
94  }
95 
96 }
97 
98 static void t_a2af(int *status)
99 /*
100 ** - - - - - - -
101 ** t _ a 2 a f
102 ** - - - - - - -
103 **
104 ** Test eraA2af function.
105 **
106 ** Returned:
107 ** status int FALSE = success, TRUE = fail
108 **
109 ** Called: eraA2af, viv
110 **
111 ** This revision: 2013 August 7
112 */
113 {
114  int idmsf[4];
115  char s;
116 
117 
118  eraA2af(4, 2.345, &s, idmsf);
119 
120  viv(s, '+', "eraA2af", "s", status);
121 
122  viv(idmsf[0], 134, "eraA2af", "0", status);
123  viv(idmsf[1], 21, "eraA2af", "1", status);
124  viv(idmsf[2], 30, "eraA2af", "2", status);
125  viv(idmsf[3], 9706, "eraA2af", "3", status);
126 
127 }
128 
129 static void t_a2tf(int *status)
130 /*
131 ** - - - - - - -
132 ** t _ a 2 t f
133 ** - - - - - - -
134 **
135 ** Test eraA2tf function.
136 **
137 ** Returned:
138 ** status int FALSE = success, TRUE = fail
139 **
140 ** Called: eraA2tf, viv
141 **
142 ** This revision: 2013 August 7
143 */
144 {
145  int ihmsf[4];
146  char s;
147 
148 
149  eraA2tf(4, -3.01234, &s, ihmsf);
150 
151  viv((int)s, '-', "eraA2tf", "s", status);
152 
153  viv(ihmsf[0], 11, "eraA2tf", "0", status);
154  viv(ihmsf[1], 30, "eraA2tf", "1", status);
155  viv(ihmsf[2], 22, "eraA2tf", "2", status);
156  viv(ihmsf[3], 6484, "eraA2tf", "3", status);
157 
158 }
159 
160 static void t_ab(int *status)
161 /*
162 ** - - - - -
163 ** t _ a b
164 ** - - - - -
165 **
166 ** Test eraAb function.
167 **
168 ** Returned:
169 ** status int FALSE = success, TRUE = fail
170 **
171 ** Called: eraAb, vvd
172 **
173 ** This revision: 2013 October 1
174 */
175 {
176  double pnat[3], v[3], s, bm1, ppr[3];
177 
178 
179  pnat[0] = -0.76321968546737951;
180  pnat[1] = -0.60869453983060384;
181  pnat[2] = -0.21676408580639883;
182  v[0] = 2.1044018893653786e-5;
183  v[1] = -8.9108923304429319e-5;
184  v[2] = -3.8633714797716569e-5;
185  s = 0.99980921395708788;
186  bm1 = 0.99999999506209258;
187 
188  eraAb(pnat, v, s, bm1, ppr);
189 
190  vvd(ppr[0], -0.7631631094219556269, 1e-12, "eraAb", "1", status);
191  vvd(ppr[1], -0.6087553082505590832, 1e-12, "eraAb", "2", status);
192  vvd(ppr[2], -0.2167926269368471279, 1e-12, "eraAb", "3", status);
193 
194 }
195 
196 static void t_af2a(int *status)
197 /*
198 ** - - - - - - -
199 ** t _ a f 2 a
200 ** - - - - - - -
201 **
202 ** Test eraAf2a function.
203 **
204 ** Returned:
205 ** status int FALSE = success, TRUE = fail
206 **
207 ** Called: eraAf2a, viv
208 **
209 ** This revision: 2013 August 7
210 */
211 {
212  double a;
213  int j;
214 
215 
216  j = eraAf2a('-', 45, 13, 27.2, &a);
217 
218  vvd(a, -0.7893115794313644842, 1e-12, "eraAf2a", "a", status);
219  viv(j, 0, "eraAf2a", "j", status);
220 
221 }
222 
223 static void t_anp(int *status)
224 /*
225 ** - - - - - -
226 ** t _ a n p
227 ** - - - - - -
228 **
229 ** Test eraAnp function.
230 **
231 ** Returned:
232 ** status int FALSE = success, TRUE = fail
233 **
234 ** Called: eraAnp, vvd
235 **
236 ** This revision: 2013 August 7
237 */
238 {
239  vvd(eraAnp(-0.1), 6.183185307179586477, 1e-12, "eraAnp", "", status);
240 }
241 
242 static void t_anpm(int *status)
243 /*
244 ** - - - - - - -
245 ** t _ a n p m
246 ** - - - - - - -
247 **
248 ** Test eraAnpm function.
249 **
250 ** Returned:
251 ** status int FALSE = success, TRUE = fail
252 **
253 ** Called: eraAnpm, vvd
254 **
255 ** This revision: 2013 August 7
256 */
257 {
258  vvd(eraAnpm(-4.0), 2.283185307179586477, 1e-12, "eraAnpm", "", status);
259 }
260 
261 static void t_apcg(int *status)
262 /*
263 ** - - - - - - -
264 ** t _ a p c g
265 ** - - - - - - -
266 **
267 ** Test eraApcg function.
268 **
269 ** Returned:
270 ** status int FALSE = success, TRUE = fail
271 **
272 ** Called: eraApcg, vvd
273 **
274 ** This revision: 2013 October 3
275 */
276 {
277  double date1, date2, ebpv[2][3], ehp[3];
278  eraASTROM astrom;
279 
280 
281  date1 = 2456165.5;
282  date2 = 0.401182685;
283  ebpv[0][0] = 0.901310875;
284  ebpv[0][1] = -0.417402664;
285  ebpv[0][2] = -0.180982288;
286  ebpv[1][0] = 0.00742727954;
287  ebpv[1][1] = 0.0140507459;
288  ebpv[1][2] = 0.00609045792;
289  ehp[0] = 0.903358544;
290  ehp[1] = -0.415395237;
291  ehp[2] = -0.180084014;
292 
293  eraApcg(date1, date2, ebpv, ehp, &astrom);
294 
295  vvd(astrom.pmt, 12.65133794027378508, 1e-11,
296  "eraApcg", "pmt", status);
297  vvd(astrom.eb[0], 0.901310875, 1e-12,
298  "eraApcg", "eb(1)", status);
299  vvd(astrom.eb[1], -0.417402664, 1e-12,
300  "eraApcg", "eb(2)", status);
301  vvd(astrom.eb[2], -0.180982288, 1e-12,
302  "eraApcg", "eb(3)", status);
303  vvd(astrom.eh[0], 0.8940025429324143045, 1e-12,
304  "eraApcg", "eh(1)", status);
305  vvd(astrom.eh[1], -0.4110930268679817955, 1e-12,
306  "eraApcg", "eh(2)", status);
307  vvd(astrom.eh[2], -0.1782189004872870264, 1e-12,
308  "eraApcg", "eh(3)", status);
309  vvd(astrom.em, 1.010465295811013146, 1e-12,
310  "eraApcg", "em", status);
311  vvd(astrom.v[0], 0.4289638897813379954e-4, 1e-16,
312  "eraApcg", "v(1_", status);
313  vvd(astrom.v[1], 0.8115034021720941898e-4, 1e-16,
314  "eraApcg", "v(2)", status);
315  vvd(astrom.v[2], 0.3517555123437237778e-4, 1e-16,
316  "eraApcg", "v(3)", status);
317  vvd(astrom.bm1, 0.9999999951686013336, 1e-12,
318  "eraApcg", "bm1", status);
319  vvd(astrom.bpn[0][0], 1.0, 0.0,
320  "eraApcg", "bpn(1,1)", status);
321  vvd(astrom.bpn[1][0], 0.0, 0.0,
322  "eraApcg", "bpn(2,1)", status);
323  vvd(astrom.bpn[2][0], 0.0, 0.0,
324  "eraApcg", "bpn(3,1)", status);
325  vvd(astrom.bpn[0][1], 0.0, 0.0,
326  "eraApcg", "bpn(1,2)", status);
327  vvd(astrom.bpn[1][1], 1.0, 0.0,
328  "eraApcg", "bpn(2,2)", status);
329  vvd(astrom.bpn[2][1], 0.0, 0.0,
330  "eraApcg", "bpn(3,2)", status);
331  vvd(astrom.bpn[0][2], 0.0, 0.0,
332  "eraApcg", "bpn(1,3)", status);
333  vvd(astrom.bpn[1][2], 0.0, 0.0,
334  "eraApcg", "bpn(2,3)", status);
335  vvd(astrom.bpn[2][2], 1.0, 0.0,
336  "eraApcg", "bpn(3,3)", status);
337 
338 }
339 
340 static void t_apcg13(int *status)
341 /*
342 ** - - - - - - - - -
343 ** t _ a p c g 1 3
344 ** - - - - - - - - -
345 **
346 ** Test eraApcg13 function.
347 **
348 ** Returned:
349 ** status int FALSE = success, TRUE = fail
350 **
351 ** Called: eraApcg13, vvd
352 **
353 ** This revision: 2013 October 3
354 */
355 {
356  double date1, date2;
357  eraASTROM astrom;
358 
359 
360  date1 = 2456165.5;
361  date2 = 0.401182685;
362 
363  eraApcg13(date1, date2, &astrom);
364 
365  vvd(astrom.pmt, 12.65133794027378508, 1e-11,
366  "eraApcg13", "pmt", status);
367  vvd(astrom.eb[0], 0.9013108747340644755, 1e-12,
368  "eraApcg13", "eb(1)", status);
369  vvd(astrom.eb[1], -0.4174026640406119957, 1e-12,
370  "eraApcg13", "eb(2)", status);
371  vvd(astrom.eb[2], -0.1809822877867817771, 1e-12,
372  "eraApcg13", "eb(3)", status);
373  vvd(astrom.eh[0], 0.8940025429255499549, 1e-12,
374  "eraApcg13", "eh(1)", status);
375  vvd(astrom.eh[1], -0.4110930268331896318, 1e-12,
376  "eraApcg13", "eh(2)", status);
377  vvd(astrom.eh[2], -0.1782189006019749850, 1e-12,
378  "eraApcg13", "eh(3)", status);
379  vvd(astrom.em, 1.010465295964664178, 1e-12,
380  "eraApcg13", "em", status);
381  vvd(astrom.v[0], 0.4289638897157027528e-4, 1e-16,
382  "eraApcg13", "v(1)", status);
383  vvd(astrom.v[1], 0.8115034002544663526e-4, 1e-16,
384  "eraApcg13", "v(2)", status);
385  vvd(astrom.v[2], 0.3517555122593144633e-4, 1e-16,
386  "eraApcg13", "v(3)", status);
387  vvd(astrom.bm1, 0.9999999951686013498, 1e-12,
388  "eraApcg13", "bm1", status);
389  vvd(astrom.bpn[0][0], 1.0, 0.0,
390  "eraApcg13", "bpn(1,1)", status);
391  vvd(astrom.bpn[1][0], 0.0, 0.0,
392  "eraApcg13", "bpn(2,1)", status);
393  vvd(astrom.bpn[2][0], 0.0, 0.0,
394  "eraApcg13", "bpn(3,1)", status);
395  vvd(astrom.bpn[0][1], 0.0, 0.0,
396  "eraApcg13", "bpn(1,2)", status);
397  vvd(astrom.bpn[1][1], 1.0, 0.0,
398  "eraApcg13", "bpn(2,2)", status);
399  vvd(astrom.bpn[2][1], 0.0, 0.0,
400  "eraApcg13", "bpn(3,2)", status);
401  vvd(astrom.bpn[0][2], 0.0, 0.0,
402  "eraApcg13", "bpn(1,3)", status);
403  vvd(astrom.bpn[1][2], 0.0, 0.0,
404  "eraApcg13", "bpn(2,3)", status);
405  vvd(astrom.bpn[2][2], 1.0, 0.0,
406  "eraApcg13", "bpn(3,3)", status);
407 
408 }
409 
410 static void t_apci(int *status)
411 /*
412 ** - - - - - - -
413 ** t _ a p c i
414 ** - - - - - - -
415 **
416 ** Test eraApci function.
417 **
418 ** Returned:
419 ** status int FALSE = success, TRUE = fail
420 **
421 ** Called: eraApci, vvd
422 **
423 ** This revision: 2013 October 3
424 */
425 {
426  double date1, date2, ebpv[2][3], ehp[3], x, y, s;
427  eraASTROM astrom;
428 
429 
430  date1 = 2456165.5;
431  date2 = 0.401182685;
432  ebpv[0][0] = 0.901310875;
433  ebpv[0][1] = -0.417402664;
434  ebpv[0][2] = -0.180982288;
435  ebpv[1][0] = 0.00742727954;
436  ebpv[1][1] = 0.0140507459;
437  ebpv[1][2] = 0.00609045792;
438  ehp[0] = 0.903358544;
439  ehp[1] = -0.415395237;
440  ehp[2] = -0.180084014;
441  x = 0.0013122272;
442  y = -2.92808623e-5;
443  s = 3.05749468e-8;
444 
445  eraApci(date1, date2, ebpv, ehp, x, y, s, &astrom);
446 
447  vvd(astrom.pmt, 12.65133794027378508, 1e-11,
448  "eraApci", "pmt", status);
449  vvd(astrom.eb[0], 0.901310875, 1e-12,
450  "eraApci", "eb(1)", status);
451  vvd(astrom.eb[1], -0.417402664, 1e-12,
452  "eraApci", "eb(2)", status);
453  vvd(astrom.eb[2], -0.180982288, 1e-12,
454  "eraApci", "eb(3)", status);
455  vvd(astrom.eh[0], 0.8940025429324143045, 1e-12,
456  "eraApci", "eh(1)", status);
457  vvd(astrom.eh[1], -0.4110930268679817955, 1e-12,
458  "eraApci", "eh(2)", status);
459  vvd(astrom.eh[2], -0.1782189004872870264, 1e-12,
460  "eraApci", "eh(3)", status);
461  vvd(astrom.em, 1.010465295811013146, 1e-12,
462  "eraApci", "em", status);
463  vvd(astrom.v[0], 0.4289638897813379954e-4, 1e-16,
464  "eraApci", "v(1)", status);
465  vvd(astrom.v[1], 0.8115034021720941898e-4, 1e-16,
466  "eraApci", "v(2)", status);
467  vvd(astrom.v[2], 0.3517555123437237778e-4, 1e-16,
468  "eraApci", "v(3)", status);
469  vvd(astrom.bm1, 0.9999999951686013336, 1e-12,
470  "eraApci", "bm1", status);
471  vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12,
472  "eraApci", "bpn(1,1)", status);
473  vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12,
474  "eraApci", "bpn(2,1)", status);
475  vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12,
476  "eraApci", "bpn(3,1)", status);
477  vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12,
478  "eraApci", "bpn(1,2)", status);
479  vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12,
480  "eraApci", "bpn(2,2)", status);
481  vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12,
482  "eraApci", "bpn(3,2)", status);
483  vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12,
484  "eraApci", "bpn(1,3)", status);
485  vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12,
486  "eraApci", "bpn(2,3)", status);
487  vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12,
488  "eraApci", "bpn(3,3)", status);
489 
490 }
491 
492 static void t_apci13(int *status)
493 /*
494 ** - - - - - - - - -
495 ** t _ a p c i 1 3
496 ** - - - - - - - - -
497 **
498 ** Test eraApci13 function.
499 **
500 ** Returned:
501 ** status int FALSE = success, TRUE = fail
502 **
503 ** Called: eraApci13, vvd
504 **
505 ** This revision: 2013 October 3
506 */
507 {
508  double date1, date2, eo;
509  eraASTROM astrom;
510 
511 
512  date1 = 2456165.5;
513  date2 = 0.401182685;
514 
515  eraApci13(date1, date2, &astrom, &eo);
516 
517  vvd(astrom.pmt, 12.65133794027378508, 1e-11,
518  "eraApci13", "pmt", status);
519  vvd(astrom.eb[0], 0.9013108747340644755, 1e-12,
520  "eraApci13", "eb(1)", status);
521  vvd(astrom.eb[1], -0.4174026640406119957, 1e-12,
522  "eraApci13", "eb(2)", status);
523  vvd(astrom.eb[2], -0.1809822877867817771, 1e-12,
524  "eraApci13", "eb(3)", status);
525  vvd(astrom.eh[0], 0.8940025429255499549, 1e-12,
526  "eraApci13", "eh(1)", status);
527  vvd(astrom.eh[1], -0.4110930268331896318, 1e-12,
528  "eraApci13", "eh(2)", status);
529  vvd(astrom.eh[2], -0.1782189006019749850, 1e-12,
530  "eraApci13", "eh(3)", status);
531  vvd(astrom.em, 1.010465295964664178, 1e-12,
532  "eraApci13", "em", status);
533  vvd(astrom.v[0], 0.4289638897157027528e-4, 1e-16,
534  "eraApci13", "v(1)", status);
535  vvd(astrom.v[1], 0.8115034002544663526e-4, 1e-16,
536  "eraApci13", "v(2)", status);
537  vvd(astrom.v[2], 0.3517555122593144633e-4, 1e-16,
538  "eraApci13", "v(3)", status);
539  vvd(astrom.bm1, 0.9999999951686013498, 1e-12,
540  "eraApci13", "bm1", status);
541  vvd(astrom.bpn[0][0], 0.9999992060376761710, 1e-12,
542  "eraApci13", "bpn(1,1)", status);
543  vvd(astrom.bpn[1][0], 0.4124244860106037157e-7, 1e-12,
544  "eraApci13", "bpn(2,1)", status);
545  vvd(astrom.bpn[2][0], 0.1260128571051709670e-2, 1e-12,
546  "eraApci13", "bpn(3,1)", status);
547  vvd(astrom.bpn[0][1], -0.1282291987222130690e-7, 1e-12,
548  "eraApci13", "bpn(1,2)", status);
549  vvd(astrom.bpn[1][1], 0.9999999997456835325, 1e-12,
550  "eraApci13", "bpn(2,2)", status);
551  vvd(astrom.bpn[2][1], -0.2255288829420524935e-4, 1e-12,
552  "eraApci13", "bpn(3,2)", status);
553  vvd(astrom.bpn[0][2], -0.1260128571661374559e-2, 1e-12,
554  "eraApci13", "bpn(1,3)", status);
555  vvd(astrom.bpn[1][2], 0.2255285422953395494e-4, 1e-12,
556  "eraApci13", "bpn(2,3)", status);
557  vvd(astrom.bpn[2][2], 0.9999992057833604343, 1e-12,
558  "eraApci13", "bpn(3,3)", status);
559  vvd(eo, -0.2900618712657375647e-2, 1e-12,
560  "eraApci13", "eo", status);
561 
562 }
563 
564 static void t_apco(int *status)
565 /*
566 ** - - - - - - -
567 ** t _ a p c o
568 ** - - - - - - -
569 **
570 ** Test eraApco function.
571 **
572 ** Returned:
573 ** status int FALSE = success, TRUE = fail
574 **
575 ** Called: eraApco, vvd
576 **
577 ** This revision: 2013 October 3
578 */
579 {
580  double date1, date2, ebpv[2][3], ehp[3], x, y, s,
581  theta, elong, phi, hm, xp, yp, sp, refa, refb;
582  eraASTROM astrom;
583 
584 
585  date1 = 2456384.5;
586  date2 = 0.970031644;
587  ebpv[0][0] = -0.974170438;
588  ebpv[0][1] = -0.211520082;
589  ebpv[0][2] = -0.0917583024;
590  ebpv[1][0] = 0.00364365824;
591  ebpv[1][1] = -0.0154287319;
592  ebpv[1][2] = -0.00668922024;
593  ehp[0] = -0.973458265;
594  ehp[1] = -0.209215307;
595  ehp[2] = -0.0906996477;
596  x = 0.0013122272;
597  y = -2.92808623e-5;
598  s = 3.05749468e-8;
599  theta = 3.14540971;
600  elong = -0.527800806;
601  phi = -1.2345856;
602  hm = 2738.0;
603  xp = 2.47230737e-7;
604  yp = 1.82640464e-6;
605  sp = -3.01974337e-11;
606  refa = 0.000201418779;
607  refb = -2.36140831e-7;
608 
609  eraApco(date1, date2, ebpv, ehp, x, y, s,
610  theta, elong, phi, hm, xp, yp, sp,
611  refa, refb, &astrom);
612 
613  vvd(astrom.pmt, 13.25248468622587269, 1e-11,
614  "eraApco", "pmt", status);
615  vvd(astrom.eb[0], -0.9741827110630897003, 1e-12,
616  "eraApco", "eb(1)", status);
617  vvd(astrom.eb[1], -0.2115130190135014340, 1e-12,
618  "eraApco", "eb(2)", status);
619  vvd(astrom.eb[2], -0.09179840186968295686, 1e-12,
620  "eraApco", "eb(3)", status);
621  vvd(astrom.eh[0], -0.9736425571689670428, 1e-12,
622  "eraApco", "eh(1)", status);
623  vvd(astrom.eh[1], -0.2092452125848862201, 1e-12,
624  "eraApco", "eh(2)", status);
625  vvd(astrom.eh[2], -0.09075578152261439954, 1e-12,
626  "eraApco", "eh(3)", status);
627  vvd(astrom.em, 0.9998233241710617934, 1e-12,
628  "eraApco", "em", status);
629  vvd(astrom.v[0], 0.2078704985147609823e-4, 1e-16,
630  "eraApco", "v(1)", status);
631  vvd(astrom.v[1], -0.8955360074407552709e-4, 1e-16,
632  "eraApco", "v(2)", status);
633  vvd(astrom.v[2], -0.3863338980073114703e-4, 1e-16,
634  "eraApco", "v(3)", status);
635  vvd(astrom.bm1, 0.9999999950277561600, 1e-12,
636  "eraApco", "bm1", status);
637  vvd(astrom.bpn[0][0], 0.9999991390295159156, 1e-12,
638  "eraApco", "bpn(1,1)", status);
639  vvd(astrom.bpn[1][0], 0.4978650072505016932e-7, 1e-12,
640  "eraApco", "bpn(2,1)", status);
641  vvd(astrom.bpn[2][0], 0.1312227200000000000e-2, 1e-12,
642  "eraApco", "bpn(3,1)", status);
643  vvd(astrom.bpn[0][1], -0.1136336653771609630e-7, 1e-12,
644  "eraApco", "bpn(1,2)", status);
645  vvd(astrom.bpn[1][1], 0.9999999995713154868, 1e-12,
646  "eraApco", "bpn(2,2)", status);
647  vvd(astrom.bpn[2][1], -0.2928086230000000000e-4, 1e-12,
648  "eraApco", "bpn(3,2)", status);
649  vvd(astrom.bpn[0][2], -0.1312227200895260194e-2, 1e-12,
650  "eraApco", "bpn(1,3)", status);
651  vvd(astrom.bpn[1][2], 0.2928082217872315680e-4, 1e-12,
652  "eraApco", "bpn(2,3)", status);
653  vvd(astrom.bpn[2][2], 0.9999991386008323373, 1e-12,
654  "eraApco", "bpn(3,3)", status);
655  vvd(astrom.along, -0.5278008060301974337, 1e-12,
656  "eraApco", "along", status);
657  vvd(astrom.xpl, 0.1133427418174939329e-5, 1e-17,
658  "eraApco", "xpl", status);
659  vvd(astrom.ypl, 0.1453347595745898629e-5, 1e-17,
660  "eraApco", "ypl", status);
661  vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
662  "eraApco", "sphi", status);
663  vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
664  "eraApco", "cphi", status);
665  vvd(astrom.diurab, 0, 0,
666  "eraApco", "diurab", status);
667  vvd(astrom.eral, 2.617608903969802566, 1e-12,
668  "eraApco", "eral", status);
669  vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15,
670  "eraApco", "refa", status);
671  vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18,
672  "eraApco", "refb", status);
673 
674 }
675 
676 static void t_apco13(int *status)
677 /*
678 ** - - - - - - - - -
679 ** t _ a p c o 1 3
680 ** - - - - - - - - -
681 **
682 ** Test eraApco13 function.
683 **
684 ** Returned:
685 ** status int FALSE = success, TRUE = fail
686 **
687 ** Called: eraApco13, vvd, viv
688 **
689 ** This revision: 2013 October 4
690 */
691 {
692  double utc1, utc2, dut1, elong, phi, hm, xp, yp,
693  phpa, tc, rh, wl, eo;
694  eraASTROM astrom;
695  int j;
696 
697 
698  utc1 = 2456384.5;
699  utc2 = 0.969254051;
700  dut1 = 0.1550675;
701  elong = -0.527800806;
702  phi = -1.2345856;
703  hm = 2738.0;
704  xp = 2.47230737e-7;
705  yp = 1.82640464e-6;
706  phpa = 731.0;
707  tc = 12.8;
708  rh = 0.59;
709  wl = 0.55;
710 
711  j = eraApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
712  phpa, tc, rh, wl, &astrom, &eo);
713 
714  vvd(astrom.pmt, 13.25248468622475727, 1e-11,
715  "eraApco13", "pmt", status);
716  vvd(astrom.eb[0], -0.9741827107321449445, 1e-12,
717  "eraApco13", "eb(1)", status);
718  vvd(astrom.eb[1], -0.2115130190489386190, 1e-12,
719  "eraApco13", "eb(2)", status);
720  vvd(astrom.eb[2], -0.09179840189515518726, 1e-12,
721  "eraApco13", "eb(3)", status);
722  vvd(astrom.eh[0], -0.9736425572586866640, 1e-12,
723  "eraApco13", "eh(1)", status);
724  vvd(astrom.eh[1], -0.2092452121602867431, 1e-12,
725  "eraApco13", "eh(2)", status);
726  vvd(astrom.eh[2], -0.09075578153903832650, 1e-12,
727  "eraApco13", "eh(3)", status);
728  vvd(astrom.em, 0.9998233240914558422, 1e-12,
729  "eraApco13", "em", status);
730  vvd(astrom.v[0], 0.2078704986751370303e-4, 1e-16,
731  "eraApco13", "v(1)", status);
732  vvd(astrom.v[1], -0.8955360100494469232e-4, 1e-16,
733  "eraApco13", "v(2)", status);
734  vvd(astrom.v[2], -0.3863338978840051024e-4, 1e-16,
735  "eraApco13", "v(3)", status);
736  vvd(astrom.bm1, 0.9999999950277561368, 1e-12,
737  "eraApco13", "bm1", status);
738  vvd(astrom.bpn[0][0], 0.9999991390295147999, 1e-12,
739  "eraApco13", "bpn(1,1)", status);
740  vvd(astrom.bpn[1][0], 0.4978650075315529277e-7, 1e-12,
741  "eraApco13", "bpn(2,1)", status);
742  vvd(astrom.bpn[2][0], 0.001312227200850293372, 1e-12,
743  "eraApco13", "bpn(3,1)", status);
744  vvd(astrom.bpn[0][1], -0.1136336652812486604e-7, 1e-12,
745  "eraApco13", "bpn(1,2)", status);
746  vvd(astrom.bpn[1][1], 0.9999999995713154865, 1e-12,
747  "eraApco13", "bpn(2,2)", status);
748  vvd(astrom.bpn[2][1], -0.2928086230975367296e-4, 1e-12,
749  "eraApco13", "bpn(3,2)", status);
750  vvd(astrom.bpn[0][2], -0.001312227201745553566, 1e-12,
751  "eraApco13", "bpn(1,3)", status);
752  vvd(astrom.bpn[1][2], 0.2928082218847679162e-4, 1e-12,
753  "eraApco13", "bpn(2,3)", status);
754  vvd(astrom.bpn[2][2], 0.9999991386008312212, 1e-12,
755  "eraApco13", "bpn(3,3)", status);
756  vvd(astrom.along, -0.5278008060301974337, 1e-12,
757  "eraApco13", "along", status);
758  vvd(astrom.xpl, 0.1133427418174939329e-5, 1e-17,
759  "eraApco13", "xpl", status);
760  vvd(astrom.ypl, 0.1453347595745898629e-5, 1e-17,
761  "eraApco13", "ypl", status);
762  vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
763  "eraApco13", "sphi", status);
764  vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
765  "eraApco13", "cphi", status);
766  vvd(astrom.diurab, 0, 0,
767  "eraApco13", "diurab", status);
768  vvd(astrom.eral, 2.617608909189066140, 1e-12,
769  "eraApco13", "eral", status);
770  vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15,
771  "eraApco13", "refa", status);
772  vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18,
773  "eraApco13", "refb", status);
774  vvd(eo, -0.003020548354802412839, 1e-14,
775  "eraApco13", "eo", status);
776  viv(j, 0, "eraApco13", "j", status);
777 
778 }
779 
780 static void t_apcs(int *status)
781 /*
782 ** - - - - - - -
783 ** t _ a p c s
784 ** - - - - - - -
785 **
786 ** Test eraApcs function.
787 **
788 ** Returned:
789 ** status int FALSE = success, TRUE = fail
790 **
791 ** Called: eraApcs, vvd
792 **
793 ** This revision: 2013 October 3
794 */
795 {
796  double date1, date2, pv[2][3], ebpv[2][3], ehp[3];
797  eraASTROM astrom;
798 
799 
800  date1 = 2456384.5;
801  date2 = 0.970031644;
802  pv[0][0] = -1836024.09;
803  pv[0][1] = 1056607.72;
804  pv[0][2] = -5998795.26;
805  pv[1][0] = -77.0361767;
806  pv[1][1] = -133.310856;
807  pv[1][2] = 0.0971855934;
808  ebpv[0][0] = -0.974170438;
809  ebpv[0][1] = -0.211520082;
810  ebpv[0][2] = -0.0917583024;
811  ebpv[1][0] = 0.00364365824;
812  ebpv[1][1] = -0.0154287319;
813  ebpv[1][2] = -0.00668922024;
814  ehp[0] = -0.973458265;
815  ehp[1] = -0.209215307;
816  ehp[2] = -0.0906996477;
817 
818  eraApcs(date1, date2, pv, ebpv, ehp, &astrom);
819 
820  vvd(astrom.pmt, 13.25248468622587269, 1e-11,
821  "eraApcs", "pmt", status);
822  vvd(astrom.eb[0], -0.9741827110630456169, 1e-12,
823  "eraApcs", "eb(1)", status);
824  vvd(astrom.eb[1], -0.2115130190136085494, 1e-12,
825  "eraApcs", "eb(2)", status);
826  vvd(astrom.eb[2], -0.09179840186973175487, 1e-12,
827  "eraApcs", "eb(3)", status);
828  vvd(astrom.eh[0], -0.9736425571689386099, 1e-12,
829  "eraApcs", "eh(1)", status);
830  vvd(astrom.eh[1], -0.2092452125849967195, 1e-12,
831  "eraApcs", "eh(2)", status);
832  vvd(astrom.eh[2], -0.09075578152266466572, 1e-12,
833  "eraApcs", "eh(3)", status);
834  vvd(astrom.em, 0.9998233241710457140, 1e-12,
835  "eraApcs", "em", status);
836  vvd(astrom.v[0], 0.2078704985513566571e-4, 1e-16,
837  "eraApcs", "v(1)", status);
838  vvd(astrom.v[1], -0.8955360074245006073e-4, 1e-16,
839  "eraApcs", "v(2)", status);
840  vvd(astrom.v[2], -0.3863338980073572719e-4, 1e-16,
841  "eraApcs", "v(3)", status);
842  vvd(astrom.bm1, 0.9999999950277561601, 1e-12,
843  "eraApcs", "bm1", status);
844  vvd(astrom.bpn[0][0], 1, 0,
845  "eraApcs", "bpn(1,1)", status);
846  vvd(astrom.bpn[1][0], 0, 0,
847  "eraApcs", "bpn(2,1)", status);
848  vvd(astrom.bpn[2][0], 0, 0,
849  "eraApcs", "bpn(3,1)", status);
850  vvd(astrom.bpn[0][1], 0, 0,
851  "eraApcs", "bpn(1,2)", status);
852  vvd(astrom.bpn[1][1], 1, 0,
853  "eraApcs", "bpn(2,2)", status);
854  vvd(astrom.bpn[2][1], 0, 0,
855  "eraApcs", "bpn(3,2)", status);
856  vvd(astrom.bpn[0][2], 0, 0,
857  "eraApcs", "bpn(1,3)", status);
858  vvd(astrom.bpn[1][2], 0, 0,
859  "eraApcs", "bpn(2,3)", status);
860  vvd(astrom.bpn[2][2], 1, 0,
861  "eraApcs", "bpn(3,3)", status);
862 
863 }
864 
865 static void t_apcs13(int *status)
866 /*
867 ** - - - - - - - - -
868 ** t _ a p c s 1 3
869 ** - - - - - - - - -
870 **
871 ** Test eraApcs13 function.
872 **
873 ** Returned:
874 ** status int FALSE = success, TRUE = fail
875 **
876 ** Called: eraApcs13, vvd
877 **
878 ** This revision: 2013 October 3
879 */
880 {
881  double date1, date2, pv[2][3];
882  eraASTROM astrom;
883 
884 
885  date1 = 2456165.5;
886  date2 = 0.401182685;
887  pv[0][0] = -6241497.16;
888  pv[0][1] = 401346.896;
889  pv[0][2] = -1251136.04;
890  pv[1][0] = -29.264597;
891  pv[1][1] = -455.021831;
892  pv[1][2] = 0.0266151194;
893 
894  eraApcs13(date1, date2, pv, &astrom);
895 
896  vvd(astrom.pmt, 12.65133794027378508, 1e-11,
897  "eraApcs13", "pmt", status);
898  vvd(astrom.eb[0], 0.9012691529023298391, 1e-12,
899  "eraApcs13", "eb(1)", status);
900  vvd(astrom.eb[1], -0.4173999812023068781, 1e-12,
901  "eraApcs13", "eb(2)", status);
902  vvd(astrom.eb[2], -0.1809906511146821008, 1e-12,
903  "eraApcs13", "eb(3)", status);
904  vvd(astrom.eh[0], 0.8939939101759726824, 1e-12,
905  "eraApcs13", "eh(1)", status);
906  vvd(astrom.eh[1], -0.4111053891734599955, 1e-12,
907  "eraApcs13", "eh(2)", status);
908  vvd(astrom.eh[2], -0.1782336880637689334, 1e-12,
909  "eraApcs13", "eh(3)", status);
910  vvd(astrom.em, 1.010428384373318379, 1e-12,
911  "eraApcs13", "em", status);
912  vvd(astrom.v[0], 0.4279877278327626511e-4, 1e-16,
913  "eraApcs13", "v(1)", status);
914  vvd(astrom.v[1], 0.7963255057040027770e-4, 1e-16,
915  "eraApcs13", "v(2)", status);
916  vvd(astrom.v[2], 0.3517564000441374759e-4, 1e-16,
917  "eraApcs13", "v(3)", status);
918  vvd(astrom.bm1, 0.9999999952947981330, 1e-12,
919  "eraApcs13", "bm1", status);
920  vvd(astrom.bpn[0][0], 1, 0,
921  "eraApcs13", "bpn(1,1)", status);
922  vvd(astrom.bpn[1][0], 0, 0,
923  "eraApcs13", "bpn(2,1)", status);
924  vvd(astrom.bpn[2][0], 0, 0,
925  "eraApcs13", "bpn(3,1)", status);
926  vvd(astrom.bpn[0][1], 0, 0,
927  "eraApcs13", "bpn(1,2)", status);
928  vvd(astrom.bpn[1][1], 1, 0,
929  "eraApcs13", "bpn(2,2)", status);
930  vvd(astrom.bpn[2][1], 0, 0,
931  "eraApcs13", "bpn(3,2)", status);
932  vvd(astrom.bpn[0][2], 0, 0,
933  "eraApcs13", "bpn(1,3)", status);
934  vvd(astrom.bpn[1][2], 0, 0,
935  "eraApcs13", "bpn(2,3)", status);
936  vvd(astrom.bpn[2][2], 1, 0,
937  "eraApcs13", "bpn(3,3)", status);
938 
939 }
940 
941 static void t_aper(int *status)
942 /*
943 ** - - - - - - -
944 ** t _ a p e r
945 ** - - - - - - -
946 *
947 ** Test eraAper function.
948 *
949 ** Returned:
950 ** status int FALSE = success, TRUE = fail
951 *
952 ** Called: eraAper, vvd
953 *
954 ** This revision: 2013 October 3
955 */
956 {
957  double theta;
958  eraASTROM astrom;
959 
960 
961  astrom.along = 1.234;
962  theta = 5.678;
963 
964  eraAper(theta, &astrom);
965 
966  vvd(astrom.eral, 6.912000000000000000, 1e-12,
967  "eraAper", "pmt", status);
968 
969 }
970 
971 static void t_aper13(int *status)
972 /*
973 ** - - - - - - - - -
974 ** t _ a p e r 1 3
975 ** - - - - - - - - -
976 **
977 ** Test eraAper13 function.
978 **
979 ** Returned:
980 ** status int FALSE = success, TRUE = fail
981 **
982 ** Called: eraAper13, vvd
983 **
984 ** This revision: 2013 October 3
985 */
986 {
987  double ut11, ut12;
988  eraASTROM astrom;
989 
990 
991  astrom.along = 1.234;
992  ut11 = 2456165.5;
993  ut12 = 0.401182685;
994 
995  eraAper13(ut11, ut12, &astrom);
996 
997  vvd(astrom.eral, 3.316236661789694933, 1e-12,
998  "eraAper13", "pmt", status);
999 
1000 }
1001 
1002 static void t_apio(int *status)
1003 /*
1004 ** - - - - - - -
1005 ** t _ a p i o
1006 ** - - - - - - -
1007 **
1008 ** Test eraApio function.
1009 **
1010 ** Returned:
1011 ** status int FALSE = success, TRUE = fail
1012 **
1013 ** Called: eraApio, vvd
1014 **
1015 ** This revision: 2013 October 3
1016 */
1017 {
1018  double sp, theta, elong, phi, hm, xp, yp, refa, refb;
1019  eraASTROM astrom;
1020 
1021 
1022  sp = -3.01974337e-11;
1023  theta = 3.14540971;
1024  elong = -0.527800806;
1025  phi = -1.2345856;
1026  hm = 2738.0;
1027  xp = 2.47230737e-7;
1028  yp = 1.82640464e-6;
1029  refa = 0.000201418779;
1030  refb = -2.36140831e-7;
1031 
1032  eraApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, &astrom);
1033 
1034  vvd(astrom.along, -0.5278008060301974337, 1e-12,
1035  "eraApio", "along", status);
1036  vvd(astrom.xpl, 0.1133427418174939329e-5, 1e-17,
1037  "eraApio", "xpl", status);
1038  vvd(astrom.ypl, 0.1453347595745898629e-5, 1e-17,
1039  "eraApio", "ypl", status);
1040  vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
1041  "eraApio", "sphi", status);
1042  vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
1043  "eraApio", "cphi", status);
1044  vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12,
1045  "eraApio", "diurab", status);
1046  vvd(astrom.eral, 2.617608903969802566, 1e-12,
1047  "eraApio", "eral", status);
1048  vvd(astrom.refa, 0.2014187790000000000e-3, 1e-15,
1049  "eraApio", "refa", status);
1050  vvd(astrom.refb, -0.2361408310000000000e-6, 1e-18,
1051  "eraApio", "refb", status);
1052 
1053 }
1054 
1055 static void t_apio13(int *status)
1056 /*
1057 ** - - - - - - - - -
1058 ** t _ a p i o 1 3
1059 ** - - - - - - - - -
1060 **
1061 ** Test eraApio13 function.
1062 **
1063 ** Returned:
1064 ** status int FALSE = success, TRUE = fail
1065 **
1066 ** Called: eraApio13, vvd, viv
1067 **
1068 ** This revision: 2013 October 4
1069 */
1070 {
1071  double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl;
1072  int j;
1073  eraASTROM astrom;
1074 
1075 
1076  utc1 = 2456384.5;
1077  utc2 = 0.969254051;
1078  dut1 = 0.1550675;
1079  elong = -0.527800806;
1080  phi = -1.2345856;
1081  hm = 2738.0;
1082  xp = 2.47230737e-7;
1083  yp = 1.82640464e-6;
1084  phpa = 731.0;
1085  tc = 12.8;
1086  rh = 0.59;
1087  wl = 0.55;
1088 
1089  j = eraApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
1090  phpa, tc, rh, wl, &astrom);
1091 
1092  vvd(astrom.along, -0.5278008060301974337, 1e-12,
1093  "eraApio13", "along", status);
1094  vvd(astrom.xpl, 0.1133427418174939329e-5, 1e-17,
1095  "eraApio13", "xpl", status);
1096  vvd(astrom.ypl, 0.1453347595745898629e-5, 1e-17,
1097  "eraApio13", "ypl", status);
1098  vvd(astrom.sphi, -0.9440115679003211329, 1e-12,
1099  "eraApio13", "sphi", status);
1100  vvd(astrom.cphi, 0.3299123514971474711, 1e-12,
1101  "eraApio13", "cphi", status);
1102  vvd(astrom.diurab, 0.5135843661699913529e-6, 1e-12,
1103  "eraApio13", "diurab", status);
1104  vvd(astrom.eral, 2.617608909189066140, 1e-12,
1105  "eraApio13", "eral", status);
1106  vvd(astrom.refa, 0.2014187785940396921e-3, 1e-15,
1107  "eraApio13", "refa", status);
1108  vvd(astrom.refb, -0.2361408314943696227e-6, 1e-18,
1109  "eraApio13", "refb", status);
1110  viv(j, 0, "eraApio13", "j", status);
1111 
1112 }
1113 
1114 static void t_atci13(int *status)
1115 /*
1116 ** - - - - - - - - -
1117 ** t _ a t c i 1 3
1118 ** - - - - - - - - -
1119 **
1120 ** Test eraAtci13 function.
1121 **
1122 ** Returned:
1123 ** status int FALSE = success, TRUE = fail
1124 **
1125 ** Called: eraAtci13, vvd
1126 **
1127 ** This revision: 2013 October 3
1128 */
1129 {
1130  double rc, dc, pr, pd, px, rv, date1, date2, ri, di, eo;
1131 
1132 
1133  rc = 2.71;
1134  dc = 0.174;
1135  pr = 1e-5;
1136  pd = 5e-6;
1137  px = 0.1;
1138  rv = 55.0;
1139  date1 = 2456165.5;
1140  date2 = 0.401182685;
1141 
1142  eraAtci13(rc, dc, pr, pd, px, rv, date1, date2, &ri, &di, &eo);
1143 
1144  vvd(ri, 2.710121572969038991, 1e-12,
1145  "eraAtci13", "ri", status);
1146  vvd(di, 0.1729371367218230438, 1e-12,
1147  "eraAtci13", "di", status);
1148  vvd(eo, -0.002900618712657375647, 1e-14,
1149  "eraAtci13", "eo", status);
1150 
1151 }
1152 
1153 static void t_atciq(int *status)
1154 /*
1155 ** - - - - - - - -
1156 ** t _ a t c i q
1157 ** - - - - - - - -
1158 **
1159 ** Test eraAtciq function.
1160 **
1161 ** Returned:
1162 ** status int FALSE = success, TRUE = fail
1163 **
1164 ** Called: eraApci13, eraAtciq, vvd
1165 **
1166 ** This revision: 2013 October 3
1167 */
1168 {
1169  double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di;
1170  eraASTROM astrom;
1171 
1172  date1 = 2456165.5;
1173  date2 = 0.401182685;
1174  eraApci13(date1, date2, &astrom, &eo);
1175  rc = 2.71;
1176  dc = 0.174;
1177  pr = 1e-5;
1178  pd = 5e-6;
1179  px = 0.1;
1180  rv = 55.0;
1181 
1182  eraAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di);
1183 
1184  vvd(ri, 2.710121572969038991, 1e-12, "eraAtciq", "ri", status);
1185  vvd(di, 0.1729371367218230438, 1e-12, "eraAtciq", "di", status);
1186 
1187 }
1188 
1189 static void t_atciqn(int *status)
1190 /*
1191 ** - - - - - - - - -
1192 ** t _ a t c i q n
1193 ** - - - - - - - - -
1194 **
1195 ** Test eraAtciqn function.
1196 **
1197 ** Returned:
1198 ** status int FALSE = success, TRUE = fail
1199 **
1200 ** Called: eraApci13, eraAtciqn, vvd
1201 **
1202 ** This revision: 2013 October 3
1203 */
1204 {
1205  eraLDBODY b[3];
1206  double date1, date2, eo, rc, dc, pr, pd, px, rv, ri, di;
1207  eraASTROM astrom;
1208 
1209  date1 = 2456165.5;
1210  date2 = 0.401182685;
1211  eraApci13(date1, date2, &astrom, &eo);
1212  rc = 2.71;
1213  dc = 0.174;
1214  pr = 1e-5;
1215  pd = 5e-6;
1216  px = 0.1;
1217  rv = 55.0;
1218  b[0].bm = 0.00028574;
1219  b[0].dl = 3e-10;
1220  b[0].pv[0][0] = -7.81014427;
1221  b[0].pv[0][1] = -5.60956681;
1222  b[0].pv[0][2] = -1.98079819;
1223  b[0].pv[1][0] = 0.0030723249;
1224  b[0].pv[1][1] = -0.00406995477;
1225  b[0].pv[1][2] = -0.00181335842;
1226  b[1].bm = 0.00095435;
1227  b[1].dl = 3e-9;
1228  b[1].pv[0][0] = 0.738098796;
1229  b[1].pv[0][1] = 4.63658692;
1230  b[1].pv[0][2] = 1.9693136;
1231  b[1].pv[1][0] = -0.00755816922;
1232  b[1].pv[1][1] = 0.00126913722;
1233  b[1].pv[1][2] = 0.000727999001;
1234  b[2].bm = 1.0;
1235  b[2].dl = 6e-6;
1236  b[2].pv[0][0] = -0.000712174377;
1237  b[2].pv[0][1] = -0.00230478303;
1238  b[2].pv[0][2] = -0.00105865966;
1239  b[2].pv[1][0] = 6.29235213e-6;
1240  b[2].pv[1][1] = -3.30888387e-7;
1241  b[2].pv[1][2] = -2.96486623e-7;
1242 
1243  eraAtciqn ( rc, dc, pr, pd, px, rv, &astrom, 3, b, &ri, &di);
1244 
1245  vvd(ri, 2.710122008105325582, 1e-12, "eraAtciqn", "ri", status);
1246  vvd(di, 0.1729371916491459122, 1e-12, "eraAtciqn", "di", status);
1247 
1248 }
1249 
1250 static void t_atciqz(int *status)
1251 /*
1252 ** - - - - - - - - -
1253 ** t _ a t c i q z
1254 ** - - - - - - - - -
1255 **
1256 ** Test eraAtciqz function.
1257 **
1258 ** Returned:
1259 ** status int FALSE = success, TRUE = fail
1260 **
1261 ** Called: eraApci13, eraAtciqz, vvd
1262 **
1263 ** This revision: 2013 October 3
1264 */
1265 {
1266  double date1, date2, eo, rc, dc, ri, di;
1267  eraASTROM astrom;
1268 
1269 
1270  date1 = 2456165.5;
1271  date2 = 0.401182685;
1272  eraApci13(date1, date2, &astrom, &eo);
1273  rc = 2.71;
1274  dc = 0.174;
1275 
1276  eraAtciqz(rc, dc, &astrom, &ri, &di);
1277 
1278  vvd(ri, 2.709994899247599271, 1e-12, "eraAtciqz", "ri", status);
1279  vvd(di, 0.1728740720983623469, 1e-12, "eraAtciqz", "di", status);
1280 
1281 }
1282 
1283 static void t_atco13(int *status)
1284 /*
1285 ** - - - - - - - - -
1286 ** t _ a t c o 1 3
1287 ** - - - - - - - - -
1288 **
1289 ** Test eraAtco13 function.
1290 **
1291 ** Returned:
1292 ** status int FALSE = success, TRUE = fail
1293 **
1294 ** Called: eraAtco13, vvd, viv
1295 **
1296 ** This revision: 2013 October 4
1297 */
1298 {
1299  double rc, dc, pr, pd, px, rv, utc1, utc2, dut1,
1300  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1301  aob, zob, hob, dob, rob, eo;
1302  int j;
1303 
1304 
1305  rc = 2.71;
1306  dc = 0.174;
1307  pr = 1e-5;
1308  pd = 5e-6;
1309  px = 0.1;
1310  rv = 55.0;
1311  utc1 = 2456384.5;
1312  utc2 = 0.969254051;
1313  dut1 = 0.1550675;
1314  elong = -0.527800806;
1315  phi = -1.2345856;
1316  hm = 2738.0;
1317  xp = 2.47230737e-7;
1318  yp = 1.82640464e-6;
1319  phpa = 731.0;
1320  tc = 12.8;
1321  rh = 0.59;
1322  wl = 0.55;
1323 
1324  j = eraAtco13(rc, dc, pr, pd, px, rv,
1325  utc1, utc2, dut1, elong, phi, hm, xp, yp,
1326  phpa, tc, rh, wl,
1327  &aob, &zob, &hob, &dob, &rob, &eo);
1328 
1329  vvd(aob, 0.09251774485358230653, 1e-12, "eraAtco13", "aob", status);
1330  vvd(zob, 1.407661405256767021, 1e-12, "eraAtco13", "zob", status);
1331  vvd(hob, -0.09265154431403157925, 1e-12, "eraAtco13", "hob", status);
1332  vvd(dob, 0.1716626560075591655, 1e-12, "eraAtco13", "dob", status);
1333  vvd(rob, 2.710260453503097719, 1e-12, "eraAtco13", "rob", status);
1334  vvd(eo, -0.003020548354802412839, 1e-14, "eraAtco13", "eo", status);
1335  viv(j, 0, "eraAtco13", "j", status);
1336 
1337 }
1338 
1339 static void t_atic13(int *status)
1340 /*
1341 ** - - - - - - - - -
1342 ** t _ a t i c 1 3
1343 ** - - - - - - - - -
1344 **
1345 ** Test eraAtic13 function.
1346 **
1347 ** Returned:
1348 ** status int FALSE = success, TRUE = fail
1349 **
1350 ** Called: eraAtic13, vvd
1351 **
1352 ** This revision: 2013 October 3
1353 */
1354 {
1355  double ri, di, date1, date2, rc, dc, eo;
1356 
1357 
1358  ri = 2.710121572969038991;
1359  di = 0.1729371367218230438;
1360  date1 = 2456165.5;
1361  date2 = 0.401182685;
1362 
1363  eraAtic13(ri, di, date1, date2, &rc, &dc, &eo);
1364 
1365  vvd(rc, 2.710126504531374930, 1e-12, "eraAtic13", "rc", status);
1366  vvd(dc, 0.1740632537628342320, 1e-12, "eraAtic13", "dc", status);
1367  vvd(eo, -0.002900618712657375647, 1e-14, "eraAtic13", "eo", status);
1368 
1369 }
1370 
1371 static void t_aticq(int *status)
1372 /*
1373 ** - - - - - - - -
1374 ** t _ a t i c q
1375 ** - - - - - - - -
1376 **
1377 ** Test eraAticq function.
1378 **
1379 ** Returned:
1380 ** status int FALSE = success, TRUE = fail
1381 **
1382 ** Called: eraApci13, eraAticq, vvd
1383 **
1384 ** This revision: 2013 October 3
1385 */
1386 {
1387  double date1, date2, eo, ri, di, rc, dc;
1388  eraASTROM astrom;
1389 
1390 
1391  date1 = 2456165.5;
1392  date2 = 0.401182685;
1393  eraApci13(date1, date2, &astrom, &eo);
1394  ri = 2.710121572969038991;
1395  di = 0.1729371367218230438;
1396 
1397  eraAticq(ri, di, &astrom, &rc, &dc);
1398 
1399  vvd(rc, 2.710126504531374930, 1e-12, "eraAticq", "rc", status);
1400  vvd(dc, 0.1740632537628342320, 1e-12, "eraAticq", "dc", status);
1401 
1402 }
1403 
1404 static void t_aticqn(int *status)
1405 /*
1406 ** - - - - - - - - -
1407 ** t _ a t i c q n
1408 ** - - - - - - - - -
1409 **
1410 ** Test eraAticqn function.
1411 **
1412 ** Returned:
1413 ** status int FALSE = success, TRUE = fail
1414 **
1415 ** Called: eraApci13, eraAticqn, vvd
1416 **
1417 ** This revision: 2013 October 3
1418 */
1419 {
1420  double date1, date2, eo, ri, di, rc, dc;
1421  eraLDBODY b[3];
1422  eraASTROM astrom;
1423 
1424 
1425  date1 = 2456165.5;
1426  date2 = 0.401182685;
1427  eraApci13(date1, date2, &astrom, &eo);
1428  ri = 2.709994899247599271;
1429  di = 0.1728740720983623469;
1430  b[0].bm = 0.00028574;
1431  b[0].dl = 3e-10;
1432  b[0].pv[0][0] = -7.81014427;
1433  b[0].pv[0][1] = -5.60956681;
1434  b[0].pv[0][2] = -1.98079819;
1435  b[0].pv[1][0] = 0.0030723249;
1436  b[0].pv[1][1] = -0.00406995477;
1437  b[0].pv[1][2] = -0.00181335842;
1438  b[1].bm = 0.00095435;
1439  b[1].dl = 3e-9;
1440  b[1].pv[0][0] = 0.738098796;
1441  b[1].pv[0][1] = 4.63658692;
1442  b[1].pv[0][2] = 1.9693136;
1443  b[1].pv[1][0] = -0.00755816922;
1444  b[1].pv[1][1] = 0.00126913722;
1445  b[1].pv[1][2] = 0.000727999001;
1446  b[2].bm = 1.0;
1447  b[2].dl = 6e-6;
1448  b[2].pv[0][0] = -0.000712174377;
1449  b[2].pv[0][1] = -0.00230478303;
1450  b[2].pv[0][2] = -0.00105865966;
1451  b[2].pv[1][0] = 6.29235213e-6;
1452  b[2].pv[1][1] = -3.30888387e-7;
1453  b[2].pv[1][2] = -2.96486623e-7;
1454 
1455  eraAticqn(ri, di, &astrom, 3, b, &rc, &dc);
1456 
1457  vvd(rc, 2.709999575032685412, 1e-12, "eraAtciqn", "rc", status);
1458  vvd(dc, 0.1739999656317778034, 1e-12, "eraAtciqn", "dc", status);
1459 
1460 }
1461 
1462 static void t_atio13(int *status)
1463 /*
1464 ** - - - - - - - - -
1465 ** t _ a t i o 1 3
1466 ** - - - - - - - - -
1467 **
1468 ** Test eraAtio13 function.
1469 **
1470 ** Returned:
1471 ** status int FALSE = success, TRUE = fail
1472 **
1473 ** Called: eraAtio13, vvd, viv
1474 **
1475 ** This revision: 2013 October 3
1476 */
1477 {
1478  double ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp,
1479  phpa, tc, rh, wl, aob, zob, hob, dob, rob;
1480  int j;
1481 
1482 
1483  ri = 2.710121572969038991;
1484  di = 0.1729371367218230438;
1485  utc1 = 2456384.5;
1486  utc2 = 0.969254051;
1487  dut1 = 0.1550675;
1488  elong = -0.527800806;
1489  phi = -1.2345856;
1490  hm = 2738.0;
1491  xp = 2.47230737e-7;
1492  yp = 1.82640464e-6;
1493  phpa = 731.0;
1494  tc = 12.8;
1495  rh = 0.59;
1496  wl = 0.55;
1497 
1498  j = eraAtio13(ri, di, utc1, utc2, dut1, elong, phi, hm,
1499  xp, yp, phpa, tc, rh, wl,
1500  &aob, &zob, &hob, &dob, &rob);
1501 
1502  vvd(aob, 0.09233952224794989993, 1e-12, "eraAtio13", "aob", status);
1503  vvd(zob, 1.407758704513722461, 1e-12, "eraAtio13", "zob", status);
1504  vvd(hob, -0.09247619879782006106, 1e-12, "eraAtio13", "hob", status);
1505  vvd(dob, 0.1717653435758265198, 1e-12, "eraAtio13", "dob", status);
1506  vvd(rob, 2.710085107986886201, 1e-12, "eraAtio13", "rob", status);
1507  viv(j, 0, "eraAtio13", "j", status);
1508 
1509 }
1510 
1511 static void t_atioq(int *status)
1512 /*
1513 ** - - - - - - - -
1514 ** t _ a t i o q
1515 ** - - - - - - - -
1516 **
1517 ** Test eraAtioq function.
1518 **
1519 ** Returned:
1520 ** status int FALSE = success, TRUE = fail
1521 **
1522 ** Called: eraApio13, eraAtioq, vvd, viv
1523 **
1524 ** This revision: 2013 October 4
1525 */
1526 {
1527  double utc1, utc2, dut1, elong, phi, hm, xp, yp,
1528  phpa, tc, rh, wl, ri, di, aob, zob, hob, dob, rob;
1529  eraASTROM astrom;
1530 
1531 
1532  utc1 = 2456384.5;
1533  utc2 = 0.969254051;
1534  dut1 = 0.1550675;
1535  elong = -0.527800806;
1536  phi = -1.2345856;
1537  hm = 2738.0;
1538  xp = 2.47230737e-7;
1539  yp = 1.82640464e-6;
1540  phpa = 731.0;
1541  tc = 12.8;
1542  rh = 0.59;
1543  wl = 0.55;
1544  (void) eraApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
1545  phpa, tc, rh, wl, &astrom);
1546  ri = 2.710121572969038991;
1547  di = 0.1729371367218230438;
1548 
1549  eraAtioq(ri, di, &astrom, &aob, &zob, &hob, &dob, &rob);
1550 
1551  vvd(aob, 0.09233952224794989993, 1e-12, "eraAtioq", "aob", status);
1552  vvd(zob, 1.407758704513722461, 1e-12, "eraAtioq", "zob", status);
1553  vvd(hob, -0.09247619879782006106, 1e-12, "eraAtioq", "hob", status);
1554  vvd(dob, 0.1717653435758265198, 1e-12, "eraAtioq", "dob", status);
1555  vvd(rob, 2.710085107986886201, 1e-12, "eraAtioq", "rob", status);
1556 
1557 }
1558 
1559 static void t_atoc13(int *status)
1560 /*
1561 ** - - - - - - - - -
1562 ** t _ a t o c 1 3
1563 ** - - - - - - - - -
1564 **
1565 ** Test eraAtoc13 function.
1566 **
1567 ** Returned:
1568 ** status int FALSE = success, TRUE = fail
1569 **
1570 ** Called: eraAtoc13, vvd, viv
1571 **
1572 ** This revision: 2013 October 3
1573 */
1574 {
1575  double utc1, utc2, dut1,
1576  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1577  ob1, ob2, rc, dc;
1578  int j;
1579 
1580 
1581  utc1 = 2456384.5;
1582  utc2 = 0.969254051;
1583  dut1 = 0.1550675;
1584  elong = -0.527800806;
1585  phi = -1.2345856;
1586  hm = 2738.0;
1587  xp = 2.47230737e-7;
1588  yp = 1.82640464e-6;
1589  phpa = 731.0;
1590  tc = 12.8;
1591  rh = 0.59;
1592  wl = 0.55;
1593 
1594  ob1 = 2.710085107986886201;
1595  ob2 = 0.1717653435758265198;
1596  j = eraAtoc13 ( "R", ob1, ob2, utc1, utc2, dut1,
1597  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1598  &rc, &dc);
1599  vvd(rc, 2.709956744661000609, 1e-12, "eraAtoc13", "R/rc", status);
1600  vvd(dc, 0.1741696500895398562, 1e-12, "eraAtoc13", "R/dc", status);
1601  viv(j, 0, "eraAtoc13", "R/j", status);
1602 
1603  ob1 = -0.09247619879782006106;
1604  ob2 = 0.1717653435758265198;
1605  j = eraAtoc13 ( "H", ob1, ob2, utc1, utc2, dut1,
1606  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1607  &rc, &dc);
1608  vvd(rc, 2.709956744661000609, 1e-12, "eraAtoc13", "H/rc", status);
1609  vvd(dc, 0.1741696500895398562, 1e-12, "eraAtoc13", "H/dc", status);
1610  viv(j, 0, "eraAtoc13", "H/j", status);
1611 
1612  ob1 = 0.09233952224794989993;
1613  ob2 = 1.407758704513722461;
1614  j = eraAtoc13 ( "A", ob1, ob2, utc1, utc2, dut1,
1615  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1616  &rc, &dc);
1617  vvd(rc, 2.709956744661000609, 1e-12, "eraAtoc13", "A/rc", status);
1618  vvd(dc, 0.1741696500895398565, 1e-12, "eraAtoc13", "A/dc", status);
1619  viv(j, 0, "eraAtoc13", "A/j", status);
1620 
1621 }
1622 
1623 static void t_atoi13(int *status)
1624 /*
1625 ** - - - - - - - - -
1626 ** t _ a t o i 1 3
1627 ** - - - - - - - - -
1628 **
1629 ** Test eraAtoi13 function.
1630 **
1631 ** Returned:
1632 ** status int FALSE = success, TRUE = fail
1633 **
1634 ** Called: eraAtoi13, vvd, viv
1635 **
1636 ** This revision: 2013 October 3
1637 */
1638 {
1639  double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1640  ob1, ob2, ri, di;
1641  int j;
1642 
1643 
1644  utc1 = 2456384.5;
1645  utc2 = 0.969254051;
1646  dut1 = 0.1550675;
1647  elong = -0.527800806;
1648  phi = -1.2345856;
1649  hm = 2738.0;
1650  xp = 2.47230737e-7;
1651  yp = 1.82640464e-6;
1652  phpa = 731.0;
1653  tc = 12.8;
1654  rh = 0.59;
1655  wl = 0.55;
1656 
1657  ob1 = 2.710085107986886201;
1658  ob2 = 0.1717653435758265198;
1659  j = eraAtoi13 ( "R", ob1, ob2, utc1, utc2, dut1,
1660  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1661  &ri, &di);
1662  vvd(ri, 2.710121574449135955, 1e-12, "eraAtoi13", "R/ri", status);
1663  vvd(di, 0.1729371839114567725, 1e-12, "eraAtoi13", "R/di", status);
1664  viv(j, 0, "eraAtoi13", "R/J", status);
1665 
1666  ob1 = -0.09247619879782006106;
1667  ob2 = 0.1717653435758265198;
1668  j = eraAtoi13 ( "H", ob1, ob2, utc1, utc2, dut1,
1669  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1670  &ri, &di);
1671  vvd(ri, 2.710121574449135955, 1e-12, "eraAtoi13", "H/ri", status);
1672  vvd(di, 0.1729371839114567725, 1e-12, "eraAtoi13", "H/di", status);
1673  viv(j, 0, "eraAtoi13", "H/J", status);
1674 
1675  ob1 = 0.09233952224794989993;
1676  ob2 = 1.407758704513722461;
1677  j = eraAtoi13 ( "A", ob1, ob2, utc1, utc2, dut1,
1678  elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1679  &ri, &di);
1680  vvd(ri, 2.710121574449135955, 1e-12, "eraAtoi13", "A/ri", status);
1681  vvd(di, 0.1729371839114567728, 1e-12, "eraAtoi13", "A/di", status);
1682  viv(j, 0, "eraAtoi13", "A/J", status);
1683 
1684 }
1685 
1686 static void t_atoiq(int *status)
1687 /*
1688 ** - - - - - - - -
1689 ** t _ a t o i q
1690 ** - - - - - - - -
1691 *
1692 ** Test eraAtoiq function.
1693 *
1694 ** Returned:
1695 ** status int FALSE = success, TRUE = fail
1696 *
1697 ** Called: eraApio13, eraAtoiq, vvd
1698 *
1699 ** This revision: 2013 October 4
1700 */
1701 {
1702  double utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tc, rh, wl,
1703  ob1, ob2, ri, di;
1704  eraASTROM astrom;
1705 
1706 
1707  utc1 = 2456384.5;
1708  utc2 = 0.969254051;
1709  dut1 = 0.1550675;
1710  elong = -0.527800806;
1711  phi = -1.2345856;
1712  hm = 2738.0;
1713  xp = 2.47230737e-7;
1714  yp = 1.82640464e-6;
1715  phpa = 731.0;
1716  tc = 12.8;
1717  rh = 0.59;
1718  wl = 0.55;
1719  (void) eraApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
1720  phpa, tc, rh, wl, &astrom);
1721 
1722  ob1 = 2.710085107986886201;
1723  ob2 = 0.1717653435758265198;
1724  eraAtoiq("R", ob1, ob2, &astrom, &ri, &di);
1725  vvd(ri, 2.710121574449135955, 1e-12,
1726  "eraAtoiq", "R/ri", status);
1727  vvd(di, 0.1729371839114567725, 1e-12,
1728  "eraAtoiq", "R/di", status);
1729 
1730  ob1 = -0.09247619879782006106;
1731  ob2 = 0.1717653435758265198;
1732  eraAtoiq("H", ob1, ob2, &astrom, &ri, &di);
1733  vvd(ri, 2.710121574449135955, 1e-12,
1734  "eraAtoiq", "H/ri", status);
1735  vvd(di, 0.1729371839114567725, 1e-12,
1736  "eraAtoiq", "H/di", status);
1737 
1738  ob1 = 0.09233952224794989993;
1739  ob2 = 1.407758704513722461;
1740  eraAtoiq("A", ob1, ob2, &astrom, &ri, &di);
1741  vvd(ri, 2.710121574449135955, 1e-12,
1742  "eraAtoiq", "A/ri", status);
1743  vvd(di, 0.1729371839114567728, 1e-12,
1744  "eraAtoiq", "A/di", status);
1745 
1746 }
1747 
1748 static void t_bi00(int *status)
1749 /*
1750 ** - - - - - - -
1751 ** t _ b i 0 0
1752 ** - - - - - - -
1753 **
1754 ** Test eraBi00 function.
1755 **
1756 ** Returned:
1757 ** status int FALSE = success, TRUE = fail
1758 **
1759 ** Called: eraBi00, vvd
1760 **
1761 ** This revision: 2013 August 7
1762 */
1763 {
1764  double dpsibi, depsbi, dra;
1765 
1766  eraBi00(&dpsibi, &depsbi, &dra);
1767 
1768  vvd(dpsibi, -0.2025309152835086613e-6, 1e-12,
1769  "eraBi00", "dpsibi", status);
1770  vvd(depsbi, -0.3306041454222147847e-7, 1e-12,
1771  "eraBi00", "depsbi", status);
1772  vvd(dra, -0.7078279744199225506e-7, 1e-12,
1773  "eraBi00", "dra", status);
1774 }
1775 
1776 static void t_bp00(int *status)
1777 /*
1778 ** - - - - - - -
1779 ** t _ b p 0 0
1780 ** - - - - - - -
1781 **
1782 ** Test eraBp00 function.
1783 **
1784 ** Returned:
1785 ** status int FALSE = success, TRUE = fail
1786 **
1787 ** Called: eraBp00, vvd
1788 **
1789 ** This revision: 2013 August 7
1790 */
1791 {
1792  double rb[3][3], rp[3][3], rbp[3][3];
1793 
1794 
1795  eraBp00(2400000.5, 50123.9999, rb, rp, rbp);
1796 
1797  vvd(rb[0][0], 0.9999999999999942498, 1e-12,
1798  "eraBp00", "rb11", status);
1799  vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16,
1800  "eraBp00", "rb12", status);
1801  vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16,
1802  "eraBp00", "rb13", status);
1803  vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16,
1804  "eraBp00", "rb21", status);
1805  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
1806  "eraBp00", "rb22", status);
1807  vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16,
1808  "eraBp00", "rb23", status);
1809  vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16,
1810  "eraBp00", "rb31", status);
1811  vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16,
1812  "eraBp00", "rb32", status);
1813  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
1814  "eraBp00", "rb33", status);
1815 
1816  vvd(rp[0][0], 0.9999995504864048241, 1e-12,
1817  "eraBp00", "rp11", status);
1818  vvd(rp[0][1], 0.8696113836207084411e-3, 1e-14,
1819  "eraBp00", "rp12", status);
1820  vvd(rp[0][2], 0.3778928813389333402e-3, 1e-14,
1821  "eraBp00", "rp13", status);
1822  vvd(rp[1][0], -0.8696113818227265968e-3, 1e-14,
1823  "eraBp00", "rp21", status);
1824  vvd(rp[1][1], 0.9999996218879365258, 1e-12,
1825  "eraBp00", "rp22", status);
1826  vvd(rp[1][2], -0.1690679263009242066e-6, 1e-14,
1827  "eraBp00", "rp23", status);
1828  vvd(rp[2][0], -0.3778928854764695214e-3, 1e-14,
1829  "eraBp00", "rp31", status);
1830  vvd(rp[2][1], -0.1595521004195286491e-6, 1e-14,
1831  "eraBp00", "rp32", status);
1832  vvd(rp[2][2], 0.9999999285984682756, 1e-12,
1833  "eraBp00", "rp33", status);
1834 
1835  vvd(rbp[0][0], 0.9999995505175087260, 1e-12,
1836  "eraBp00", "rbp11", status);
1837  vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14,
1838  "eraBp00", "rbp12", status);
1839  vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14,
1840  "eraBp00", "rbp13", status);
1841  vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14,
1842  "eraBp00", "rbp21", status);
1843  vvd(rbp[1][1], 0.9999996219494925900, 1e-12,
1844  "eraBp00", "rbp22", status);
1845  vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14,
1846  "eraBp00", "rbp23", status);
1847  vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14,
1848  "eraBp00", "rbp31", status);
1849  vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14,
1850  "eraBp00", "rbp32", status);
1851  vvd(rbp[2][2], 0.9999999285680153377, 1e-12,
1852  "eraBp00", "rbp33", status);
1853 }
1854 
1855 static void t_bp06(int *status)
1856 /*
1857 ** - - - - - - -
1858 ** t _ b p 0 6
1859 ** - - - - - - -
1860 **
1861 ** Test eraBp06 function.
1862 **
1863 ** Returned:
1864 ** status int FALSE = success, TRUE = fail
1865 **
1866 ** Called: eraBp06, vvd
1867 **
1868 ** This revision: 2013 August 7
1869 */
1870 {
1871  double rb[3][3], rp[3][3], rbp[3][3];
1872 
1873 
1874  eraBp06(2400000.5, 50123.9999, rb, rp, rbp);
1875 
1876  vvd(rb[0][0], 0.9999999999999942497, 1e-12,
1877  "eraBp06", "rb11", status);
1878  vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14,
1879  "eraBp06", "rb12", status);
1880  vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14,
1881  "eraBp06", "rb13", status);
1882  vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14,
1883  "eraBp06", "rb21", status);
1884  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
1885  "eraBp06", "rb22", status);
1886  vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14,
1887  "eraBp06", "rb23", status);
1888  vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14,
1889  "eraBp06", "rb31", status);
1890  vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14,
1891  "eraBp06", "rb32", status);
1892  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
1893  "eraBp06", "rb33", status);
1894 
1895  vvd(rp[0][0], 0.9999995504864960278, 1e-12,
1896  "eraBp06", "rp11", status);
1897  vvd(rp[0][1], 0.8696112578855404832e-3, 1e-14,
1898  "eraBp06", "rp12", status);
1899  vvd(rp[0][2], 0.3778929293341390127e-3, 1e-14,
1900  "eraBp06", "rp13", status);
1901  vvd(rp[1][0], -0.8696112560510186244e-3, 1e-14,
1902  "eraBp06", "rp21", status);
1903  vvd(rp[1][1], 0.9999996218880458820, 1e-12,
1904  "eraBp06", "rp22", status);
1905  vvd(rp[1][2], -0.1691646168941896285e-6, 1e-14,
1906  "eraBp06", "rp23", status);
1907  vvd(rp[2][0], -0.3778929335557603418e-3, 1e-14,
1908  "eraBp06", "rp31", status);
1909  vvd(rp[2][1], -0.1594554040786495076e-6, 1e-14,
1910  "eraBp06", "rp32", status);
1911  vvd(rp[2][2], 0.9999999285984501222, 1e-12,
1912  "eraBp06", "rp33", status);
1913 
1914  vvd(rbp[0][0], 0.9999995505176007047, 1e-12,
1915  "eraBp06", "rbp11", status);
1916  vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14,
1917  "eraBp06", "rbp12", status);
1918  vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14,
1919  "eraBp06", "rbp13", status);
1920  vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14,
1921  "eraBp06", "rbp21", status);
1922  vvd(rbp[1][1], 0.9999996219496027161, 1e-12,
1923  "eraBp06", "rbp22", status);
1924  vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14,
1925  "eraBp06", "rbp23", status);
1926  vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14,
1927  "eraBp06", "rbp31", status);
1928  vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14,
1929  "eraBp06", "rbp32", status);
1930  vvd(rbp[2][2], 0.9999999285679971958, 1e-12,
1931  "eraBp06", "rbp33", status);
1932 }
1933 
1934 static void t_bpn2xy(int *status)
1935 /*
1936 ** - - - - - - - - -
1937 ** t _ b p n 2 x y
1938 ** - - - - - - - - -
1939 **
1940 ** Test eraBpn2xy function.
1941 **
1942 ** Returned:
1943 ** status int FALSE = success, TRUE = fail
1944 **
1945 ** Called: eraBpn2xy, vvd
1946 **
1947 ** This revision: 2013 August 7
1948 */
1949 {
1950  double rbpn[3][3], x, y;
1951 
1952 
1953  rbpn[0][0] = 9.999962358680738e-1;
1954  rbpn[0][1] = -2.516417057665452e-3;
1955  rbpn[0][2] = -1.093569785342370e-3;
1956 
1957  rbpn[1][0] = 2.516462370370876e-3;
1958  rbpn[1][1] = 9.999968329010883e-1;
1959  rbpn[1][2] = 4.006159587358310e-5;
1960 
1961  rbpn[2][0] = 1.093465510215479e-3;
1962  rbpn[2][1] = -4.281337229063151e-5;
1963  rbpn[2][2] = 9.999994012499173e-1;
1964 
1965  eraBpn2xy(rbpn, &x, &y);
1966 
1967  vvd(x, 1.093465510215479e-3, 1e-12, "eraBpn2xy", "x", status);
1968  vvd(y, -4.281337229063151e-5, 1e-12, "eraBpn2xy", "y", status);
1969 
1970 }
1971 
1972 static void t_c2i00a(int *status)
1973 /*
1974 ** - - - - - - - - -
1975 ** t _ c 2 i 0 0 a
1976 ** - - - - - - - - -
1977 **
1978 ** Test eraC2i00a function.
1979 **
1980 ** Returned:
1981 ** status int FALSE = success, TRUE = fail
1982 **
1983 ** Called: eraC2i00a, vvd
1984 **
1985 ** This revision: 2013 August 7
1986 */
1987 {
1988  double rc2i[3][3];
1989 
1990 
1991  eraC2i00a(2400000.5, 53736.0, rc2i);
1992 
1993  vvd(rc2i[0][0], 0.9999998323037165557, 1e-12,
1994  "eraC2i00a", "11", status);
1995  vvd(rc2i[0][1], 0.5581526348992140183e-9, 1e-12,
1996  "eraC2i00a", "12", status);
1997  vvd(rc2i[0][2], -0.5791308477073443415e-3, 1e-12,
1998  "eraC2i00a", "13", status);
1999 
2000  vvd(rc2i[1][0], -0.2384266227870752452e-7, 1e-12,
2001  "eraC2i00a", "21", status);
2002  vvd(rc2i[1][1], 0.9999999991917405258, 1e-12,
2003  "eraC2i00a", "22", status);
2004  vvd(rc2i[1][2], -0.4020594955028209745e-4, 1e-12,
2005  "eraC2i00a", "23", status);
2006 
2007  vvd(rc2i[2][0], 0.5791308472168152904e-3, 1e-12,
2008  "eraC2i00a", "31", status);
2009  vvd(rc2i[2][1], 0.4020595661591500259e-4, 1e-12,
2010  "eraC2i00a", "32", status);
2011  vvd(rc2i[2][2], 0.9999998314954572304, 1e-12,
2012  "eraC2i00a", "33", status);
2013 
2014 }
2015 
2016 static void t_c2i00b(int *status)
2017 /*
2018 ** - - - - - - - - -
2019 ** t _ c 2 i 0 0 b
2020 ** - - - - - - - - -
2021 **
2022 ** Test eraC2i00b function.
2023 **
2024 ** Returned:
2025 ** status int FALSE = success, TRUE = fail
2026 **
2027 ** Called: eraC2i00b, vvd
2028 **
2029 ** This revision: 2013 August 7
2030 */
2031 {
2032  double rc2i[3][3];
2033 
2034 
2035  eraC2i00b(2400000.5, 53736.0, rc2i);
2036 
2037  vvd(rc2i[0][0], 0.9999998323040954356, 1e-12,
2038  "eraC2i00b", "11", status);
2039  vvd(rc2i[0][1], 0.5581526349131823372e-9, 1e-12,
2040  "eraC2i00b", "12", status);
2041  vvd(rc2i[0][2], -0.5791301934855394005e-3, 1e-12,
2042  "eraC2i00b", "13", status);
2043 
2044  vvd(rc2i[1][0], -0.2384239285499175543e-7, 1e-12,
2045  "eraC2i00b", "21", status);
2046  vvd(rc2i[1][1], 0.9999999991917574043, 1e-12,
2047  "eraC2i00b", "22", status);
2048  vvd(rc2i[1][2], -0.4020552974819030066e-4, 1e-12,
2049  "eraC2i00b", "23", status);
2050 
2051  vvd(rc2i[2][0], 0.5791301929950208873e-3, 1e-12,
2052  "eraC2i00b", "31", status);
2053  vvd(rc2i[2][1], 0.4020553681373720832e-4, 1e-12,
2054  "eraC2i00b", "32", status);
2055  vvd(rc2i[2][2], 0.9999998314958529887, 1e-12,
2056  "eraC2i00b", "33", status);
2057 
2058 }
2059 
2060 static void t_c2i06a(int *status)
2061 /*
2062 ** - - - - - - - - -
2063 ** t _ c 2 i 0 6 a
2064 ** - - - - - - - - -
2065 **
2066 ** Test eraC2i06a function.
2067 **
2068 ** Returned:
2069 ** status int FALSE = success, TRUE = fail
2070 **
2071 ** Called: eraC2i06a, vvd
2072 **
2073 ** This revision: 2013 August 7
2074 */
2075 {
2076  double rc2i[3][3];
2077 
2078 
2079  eraC2i06a(2400000.5, 53736.0, rc2i);
2080 
2081  vvd(rc2i[0][0], 0.9999998323037159379, 1e-12,
2082  "eraC2i06a", "11", status);
2083  vvd(rc2i[0][1], 0.5581121329587613787e-9, 1e-12,
2084  "eraC2i06a", "12", status);
2085  vvd(rc2i[0][2], -0.5791308487740529749e-3, 1e-12,
2086  "eraC2i06a", "13", status);
2087 
2088  vvd(rc2i[1][0], -0.2384253169452306581e-7, 1e-12,
2089  "eraC2i06a", "21", status);
2090  vvd(rc2i[1][1], 0.9999999991917467827, 1e-12,
2091  "eraC2i06a", "22", status);
2092  vvd(rc2i[1][2], -0.4020579392895682558e-4, 1e-12,
2093  "eraC2i06a", "23", status);
2094 
2095  vvd(rc2i[2][0], 0.5791308482835292617e-3, 1e-12,
2096  "eraC2i06a", "31", status);
2097  vvd(rc2i[2][1], 0.4020580099454020310e-4, 1e-12,
2098  "eraC2i06a", "32", status);
2099  vvd(rc2i[2][2], 0.9999998314954628695, 1e-12,
2100  "eraC2i06a", "33", status);
2101 
2102 }
2103 
2104 static void t_c2ibpn(int *status)
2105 /*
2106 ** - - - - - - - - -
2107 ** t _ c 2 i b p n
2108 ** - - - - - - - - -
2109 **
2110 ** Test eraC2ibpn function.
2111 **
2112 ** Returned:
2113 ** status int FALSE = success, TRUE = fail
2114 **
2115 ** Called: eraC2ibpn, vvd
2116 **
2117 ** This revision: 2013 August 7
2118 */
2119 {
2120  double rbpn[3][3], rc2i[3][3];
2121 
2122 
2123  rbpn[0][0] = 9.999962358680738e-1;
2124  rbpn[0][1] = -2.516417057665452e-3;
2125  rbpn[0][2] = -1.093569785342370e-3;
2126 
2127  rbpn[1][0] = 2.516462370370876e-3;
2128  rbpn[1][1] = 9.999968329010883e-1;
2129  rbpn[1][2] = 4.006159587358310e-5;
2130 
2131  rbpn[2][0] = 1.093465510215479e-3;
2132  rbpn[2][1] = -4.281337229063151e-5;
2133  rbpn[2][2] = 9.999994012499173e-1;
2134 
2135  eraC2ibpn(2400000.5, 50123.9999, rbpn, rc2i);
2136 
2137  vvd(rc2i[0][0], 0.9999994021664089977, 1e-12,
2138  "eraC2ibpn", "11", status);
2139  vvd(rc2i[0][1], -0.3869195948017503664e-8, 1e-12,
2140  "eraC2ibpn", "12", status);
2141  vvd(rc2i[0][2], -0.1093465511383285076e-2, 1e-12,
2142  "eraC2ibpn", "13", status);
2143 
2144  vvd(rc2i[1][0], 0.5068413965715446111e-7, 1e-12,
2145  "eraC2ibpn", "21", status);
2146  vvd(rc2i[1][1], 0.9999999990835075686, 1e-12,
2147  "eraC2ibpn", "22", status);
2148  vvd(rc2i[1][2], 0.4281334246452708915e-4, 1e-12,
2149  "eraC2ibpn", "23", status);
2150 
2151  vvd(rc2i[2][0], 0.1093465510215479000e-2, 1e-12,
2152  "eraC2ibpn", "31", status);
2153  vvd(rc2i[2][1], -0.4281337229063151000e-4, 1e-12,
2154  "eraC2ibpn", "32", status);
2155  vvd(rc2i[2][2], 0.9999994012499173103, 1e-12,
2156  "eraC2ibpn", "33", status);
2157 
2158 }
2159 
2160 static void t_c2ixy(int *status)
2161 /*
2162 ** - - - - - - - -
2163 ** t _ c 2 i x y
2164 ** - - - - - - - -
2165 **
2166 ** Test eraC2ixy function.
2167 **
2168 ** Returned:
2169 ** status int FALSE = success, TRUE = fail
2170 **
2171 ** Called: eraC2ixy, vvd
2172 **
2173 ** This revision: 2013 August 7
2174 */
2175 {
2176  double x, y, rc2i[3][3];
2177 
2178 
2179  x = 0.5791308486706011000e-3;
2180  y = 0.4020579816732961219e-4;
2181 
2182  eraC2ixy(2400000.5, 53736, x, y, rc2i);
2183 
2184  vvd(rc2i[0][0], 0.9999998323037157138, 1e-12,
2185  "eraC2ixy", "11", status);
2186  vvd(rc2i[0][1], 0.5581526349032241205e-9, 1e-12,
2187  "eraC2ixy", "12", status);
2188  vvd(rc2i[0][2], -0.5791308491611263745e-3, 1e-12,
2189  "eraC2ixy", "13", status);
2190 
2191  vvd(rc2i[1][0], -0.2384257057469842953e-7, 1e-12,
2192  "eraC2ixy", "21", status);
2193  vvd(rc2i[1][1], 0.9999999991917468964, 1e-12,
2194  "eraC2ixy", "22", status);
2195  vvd(rc2i[1][2], -0.4020579110172324363e-4, 1e-12,
2196  "eraC2ixy", "23", status);
2197 
2198  vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12,
2199  "eraC2ixy", "31", status);
2200  vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12,
2201  "eraC2ixy", "32", status);
2202  vvd(rc2i[2][2], 0.9999998314954627590, 1e-12,
2203  "eraC2ixy", "33", status);
2204 
2205 }
2206 
2207 static void t_c2ixys(int *status)
2208 /*
2209 ** - - - - - - - - -
2210 ** t _ c 2 i x y s
2211 ** - - - - - - - - -
2212 **
2213 ** Test eraC2ixys function.
2214 **
2215 ** Returned:
2216 ** status int FALSE = success, TRUE = fail
2217 **
2218 ** Called: eraC2ixys, vvd
2219 **
2220 ** This revision: 2013 August 7
2221 */
2222 {
2223  double x, y, s, rc2i[3][3];
2224 
2225 
2226  x = 0.5791308486706011000e-3;
2227  y = 0.4020579816732961219e-4;
2228  s = -0.1220040848472271978e-7;
2229 
2230  eraC2ixys(x, y, s, rc2i);
2231 
2232  vvd(rc2i[0][0], 0.9999998323037157138, 1e-12,
2233  "eraC2ixys", "11", status);
2234  vvd(rc2i[0][1], 0.5581984869168499149e-9, 1e-12,
2235  "eraC2ixys", "12", status);
2236  vvd(rc2i[0][2], -0.5791308491611282180e-3, 1e-12,
2237  "eraC2ixys", "13", status);
2238 
2239  vvd(rc2i[1][0], -0.2384261642670440317e-7, 1e-12,
2240  "eraC2ixys", "21", status);
2241  vvd(rc2i[1][1], 0.9999999991917468964, 1e-12,
2242  "eraC2ixys", "22", status);
2243  vvd(rc2i[1][2], -0.4020579110169668931e-4, 1e-12,
2244  "eraC2ixys", "23", status);
2245 
2246  vvd(rc2i[2][0], 0.5791308486706011000e-3, 1e-12,
2247  "eraC2ixys", "31", status);
2248  vvd(rc2i[2][1], 0.4020579816732961219e-4, 1e-12,
2249  "eraC2ixys", "32", status);
2250  vvd(rc2i[2][2], 0.9999998314954627590, 1e-12,
2251  "eraC2ixys", "33", status);
2252 
2253 }
2254 
2255 static void t_c2s(int *status)
2256 /*
2257 ** - - - - - -
2258 ** t _ c 2 s
2259 ** - - - - - -
2260 **
2261 ** Test eraC2s function.
2262 **
2263 ** Returned:
2264 ** status int FALSE = success, TRUE = fail
2265 **
2266 ** Called: eraC2s, vvd
2267 **
2268 ** This revision: 2013 August 7
2269 */
2270 {
2271  double p[3], theta, phi;
2272 
2273 
2274  p[0] = 100.0;
2275  p[1] = -50.0;
2276  p[2] = 25.0;
2277 
2278  eraC2s(p, &theta, &phi);
2279 
2280  vvd(theta, -0.4636476090008061162, 1e-14, "eraC2s", "theta", status);
2281  vvd(phi, 0.2199879773954594463, 1e-14, "eraC2s", "phi", status);
2282 
2283 }
2284 
2285 static void t_c2t00a(int *status)
2286 /*
2287 ** - - - - - - - - -
2288 ** t _ c 2 t 0 0 a
2289 ** - - - - - - - - -
2290 **
2291 ** Test eraC2t00a function.
2292 **
2293 ** Returned:
2294 ** status int FALSE = success, TRUE = fail
2295 **
2296 ** Called: eraC2t00a, vvd
2297 **
2298 ** This revision: 2013 August 7
2299 */
2300 {
2301  double tta, ttb, uta, utb, xp, yp, rc2t[3][3];
2302 
2303 
2304  tta = 2400000.5;
2305  uta = 2400000.5;
2306  ttb = 53736.0;
2307  utb = 53736.0;
2308  xp = 2.55060238e-7;
2309  yp = 1.860359247e-6;
2310 
2311  eraC2t00a(tta, ttb, uta, utb, xp, yp, rc2t);
2312 
2313  vvd(rc2t[0][0], -0.1810332128307182668, 1e-12,
2314  "eraC2t00a", "11", status);
2315  vvd(rc2t[0][1], 0.9834769806938457836, 1e-12,
2316  "eraC2t00a", "12", status);
2317  vvd(rc2t[0][2], 0.6555535638688341725e-4, 1e-12,
2318  "eraC2t00a", "13", status);
2319 
2320  vvd(rc2t[1][0], -0.9834768134135984552, 1e-12,
2321  "eraC2t00a", "21", status);
2322  vvd(rc2t[1][1], -0.1810332203649520727, 1e-12,
2323  "eraC2t00a", "22", status);
2324  vvd(rc2t[1][2], 0.5749801116141056317e-3, 1e-12,
2325  "eraC2t00a", "23", status);
2326 
2327  vvd(rc2t[2][0], 0.5773474014081406921e-3, 1e-12,
2328  "eraC2t00a", "31", status);
2329  vvd(rc2t[2][1], 0.3961832391770163647e-4, 1e-12,
2330  "eraC2t00a", "32", status);
2331  vvd(rc2t[2][2], 0.9999998325501692289, 1e-12,
2332  "eraC2t00a", "33", status);
2333 
2334 }
2335 
2336 static void t_c2t00b(int *status)
2337 /*
2338 ** - - - - - - - - -
2339 ** t _ c 2 t 0 0 b
2340 ** - - - - - - - - -
2341 **
2342 ** Test eraC2t00b function.
2343 **
2344 ** Returned:
2345 ** status int FALSE = success, TRUE = fail
2346 **
2347 ** Called: eraC2t00b, vvd
2348 **
2349 ** This revision: 2013 August 7
2350 */
2351 {
2352  double tta, ttb, uta, utb, xp, yp, rc2t[3][3];
2353 
2354 
2355  tta = 2400000.5;
2356  uta = 2400000.5;
2357  ttb = 53736.0;
2358  utb = 53736.0;
2359  xp = 2.55060238e-7;
2360  yp = 1.860359247e-6;
2361 
2362  eraC2t00b(tta, ttb, uta, utb, xp, yp, rc2t);
2363 
2364  vvd(rc2t[0][0], -0.1810332128439678965, 1e-12,
2365  "eraC2t00b", "11", status);
2366  vvd(rc2t[0][1], 0.9834769806913872359, 1e-12,
2367  "eraC2t00b", "12", status);
2368  vvd(rc2t[0][2], 0.6555565082458415611e-4, 1e-12,
2369  "eraC2t00b", "13", status);
2370 
2371  vvd(rc2t[1][0], -0.9834768134115435923, 1e-12,
2372  "eraC2t00b", "21", status);
2373  vvd(rc2t[1][1], -0.1810332203784001946, 1e-12,
2374  "eraC2t00b", "22", status);
2375  vvd(rc2t[1][2], 0.5749793922030017230e-3, 1e-12,
2376  "eraC2t00b", "23", status);
2377 
2378  vvd(rc2t[2][0], 0.5773467471863534901e-3, 1e-12,
2379  "eraC2t00b", "31", status);
2380  vvd(rc2t[2][1], 0.3961790411549945020e-4, 1e-12,
2381  "eraC2t00b", "32", status);
2382  vvd(rc2t[2][2], 0.9999998325505635738, 1e-12,
2383  "eraC2t00b", "33", status);
2384 
2385 }
2386 
2387 static void t_c2t06a(int *status)
2388 /*
2389 ** - - - - - - - - -
2390 ** t _ c 2 t 0 6 a
2391 ** - - - - - - - - -
2392 **
2393 ** Test eraC2t06a function.
2394 **
2395 ** Returned:
2396 ** status int FALSE = success, TRUE = fail
2397 **
2398 ** Called: eraC2t06a, vvd
2399 **
2400 ** This revision: 2013 August 7
2401 */
2402 {
2403  double tta, ttb, uta, utb, xp, yp, rc2t[3][3];
2404 
2405 
2406  tta = 2400000.5;
2407  uta = 2400000.5;
2408  ttb = 53736.0;
2409  utb = 53736.0;
2410  xp = 2.55060238e-7;
2411  yp = 1.860359247e-6;
2412 
2413  eraC2t06a(tta, ttb, uta, utb, xp, yp, rc2t);
2414 
2415  vvd(rc2t[0][0], -0.1810332128305897282, 1e-12,
2416  "eraC2t06a", "11", status);
2417  vvd(rc2t[0][1], 0.9834769806938592296, 1e-12,
2418  "eraC2t06a", "12", status);
2419  vvd(rc2t[0][2], 0.6555550962998436505e-4, 1e-12,
2420  "eraC2t06a", "13", status);
2421 
2422  vvd(rc2t[1][0], -0.9834768134136214897, 1e-12,
2423  "eraC2t06a", "21", status);
2424  vvd(rc2t[1][1], -0.1810332203649130832, 1e-12,
2425  "eraC2t06a", "22", status);
2426  vvd(rc2t[1][2], 0.5749800844905594110e-3, 1e-12,
2427  "eraC2t06a", "23", status);
2428 
2429  vvd(rc2t[2][0], 0.5773474024748545878e-3, 1e-12,
2430  "eraC2t06a", "31", status);
2431  vvd(rc2t[2][1], 0.3961816829632690581e-4, 1e-12,
2432  "eraC2t06a", "32", status);
2433  vvd(rc2t[2][2], 0.9999998325501747785, 1e-12,
2434  "eraC2t06a", "33", status);
2435 
2436 }
2437 
2438 static void t_c2tcio(int *status)
2439 /*
2440 ** - - - - - - - - -
2441 ** t _ c 2 t c i o
2442 ** - - - - - - - - -
2443 **
2444 ** Test eraC2tcio function.
2445 **
2446 ** Returned:
2447 ** status int FALSE = success, TRUE = fail
2448 **
2449 ** Called: eraC2tcio, vvd
2450 **
2451 ** This revision: 2013 August 7
2452 */
2453 {
2454  double rc2i[3][3], era, rpom[3][3], rc2t[3][3];
2455 
2456 
2457  rc2i[0][0] = 0.9999998323037164738;
2458  rc2i[0][1] = 0.5581526271714303683e-9;
2459  rc2i[0][2] = -0.5791308477073443903e-3;
2460 
2461  rc2i[1][0] = -0.2384266227524722273e-7;
2462  rc2i[1][1] = 0.9999999991917404296;
2463  rc2i[1][2] = -0.4020594955030704125e-4;
2464 
2465  rc2i[2][0] = 0.5791308472168153320e-3;
2466  rc2i[2][1] = 0.4020595661593994396e-4;
2467  rc2i[2][2] = 0.9999998314954572365;
2468 
2469  era = 1.75283325530307;
2470 
2471  rpom[0][0] = 0.9999999999999674705;
2472  rpom[0][1] = -0.1367174580728847031e-10;
2473  rpom[0][2] = 0.2550602379999972723e-6;
2474 
2475  rpom[1][0] = 0.1414624947957029721e-10;
2476  rpom[1][1] = 0.9999999999982694954;
2477  rpom[1][2] = -0.1860359246998866338e-5;
2478 
2479  rpom[2][0] = -0.2550602379741215275e-6;
2480  rpom[2][1] = 0.1860359247002413923e-5;
2481  rpom[2][2] = 0.9999999999982369658;
2482 
2483 
2484  eraC2tcio(rc2i, era, rpom, rc2t);
2485 
2486  vvd(rc2t[0][0], -0.1810332128307110439, 1e-12,
2487  "eraC2tcio", "11", status);
2488  vvd(rc2t[0][1], 0.9834769806938470149, 1e-12,
2489  "eraC2tcio", "12", status);
2490  vvd(rc2t[0][2], 0.6555535638685466874e-4, 1e-12,
2491  "eraC2tcio", "13", status);
2492 
2493  vvd(rc2t[1][0], -0.9834768134135996657, 1e-12,
2494  "eraC2tcio", "21", status);
2495  vvd(rc2t[1][1], -0.1810332203649448367, 1e-12,
2496  "eraC2tcio", "22", status);
2497  vvd(rc2t[1][2], 0.5749801116141106528e-3, 1e-12,
2498  "eraC2tcio", "23", status);
2499 
2500  vvd(rc2t[2][0], 0.5773474014081407076e-3, 1e-12,
2501  "eraC2tcio", "31", status);
2502  vvd(rc2t[2][1], 0.3961832391772658944e-4, 1e-12,
2503  "eraC2tcio", "32", status);
2504  vvd(rc2t[2][2], 0.9999998325501691969, 1e-12,
2505  "eraC2tcio", "33", status);
2506 
2507 }
2508 
2509 static void t_c2teqx(int *status)
2510 /*
2511 ** - - - - - - - - -
2512 ** t _ c 2 t e q x
2513 ** - - - - - - - - -
2514 **
2515 ** Test eraC2teqx function.
2516 **
2517 ** Returned:
2518 ** status int FALSE = success, TRUE = fail
2519 **
2520 ** Called: eraC2teqx, vvd
2521 **
2522 ** This revision: 2013 August 7
2523 */
2524 {
2525  double rbpn[3][3], gst, rpom[3][3], rc2t[3][3];
2526 
2527 
2528  rbpn[0][0] = 0.9999989440476103608;
2529  rbpn[0][1] = -0.1332881761240011518e-2;
2530  rbpn[0][2] = -0.5790767434730085097e-3;
2531 
2532  rbpn[1][0] = 0.1332858254308954453e-2;
2533  rbpn[1][1] = 0.9999991109044505944;
2534  rbpn[1][2] = -0.4097782710401555759e-4;
2535 
2536  rbpn[2][0] = 0.5791308472168153320e-3;
2537  rbpn[2][1] = 0.4020595661593994396e-4;
2538  rbpn[2][2] = 0.9999998314954572365;
2539 
2540  gst = 1.754166138040730516;
2541 
2542  rpom[0][0] = 0.9999999999999674705;
2543  rpom[0][1] = -0.1367174580728847031e-10;
2544  rpom[0][2] = 0.2550602379999972723e-6;
2545 
2546  rpom[1][0] = 0.1414624947957029721e-10;
2547  rpom[1][1] = 0.9999999999982694954;
2548  rpom[1][2] = -0.1860359246998866338e-5;
2549 
2550  rpom[2][0] = -0.2550602379741215275e-6;
2551  rpom[2][1] = 0.1860359247002413923e-5;
2552  rpom[2][2] = 0.9999999999982369658;
2553 
2554  eraC2teqx(rbpn, gst, rpom, rc2t);
2555 
2556  vvd(rc2t[0][0], -0.1810332128528685730, 1e-12,
2557  "eraC2teqx", "11", status);
2558  vvd(rc2t[0][1], 0.9834769806897685071, 1e-12,
2559  "eraC2teqx", "12", status);
2560  vvd(rc2t[0][2], 0.6555535639982634449e-4, 1e-12,
2561  "eraC2teqx", "13", status);
2562 
2563  vvd(rc2t[1][0], -0.9834768134095211257, 1e-12,
2564  "eraC2teqx", "21", status);
2565  vvd(rc2t[1][1], -0.1810332203871023800, 1e-12,
2566  "eraC2teqx", "22", status);
2567  vvd(rc2t[1][2], 0.5749801116126438962e-3, 1e-12,
2568  "eraC2teqx", "23", status);
2569 
2570  vvd(rc2t[2][0], 0.5773474014081539467e-3, 1e-12,
2571  "eraC2teqx", "31", status);
2572  vvd(rc2t[2][1], 0.3961832391768640871e-4, 1e-12,
2573  "eraC2teqx", "32", status);
2574  vvd(rc2t[2][2], 0.9999998325501691969, 1e-12,
2575  "eraC2teqx", "33", status);
2576 
2577 }
2578 
2579 static void t_c2tpe(int *status)
2580 /*
2581 ** - - - - - - - -
2582 ** t _ c 2 t p e
2583 ** - - - - - - - -
2584 **
2585 ** Test eraC2tpe function.
2586 **
2587 ** Returned:
2588 ** status int FALSE = success, TRUE = fail
2589 **
2590 ** Called: eraC2tpe, vvd
2591 **
2592 ** This revision: 2013 August 7
2593 */
2594 {
2595  double tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t[3][3];
2596 
2597 
2598  tta = 2400000.5;
2599  uta = 2400000.5;
2600  ttb = 53736.0;
2601  utb = 53736.0;
2602  deps = 0.4090789763356509900;
2603  dpsi = -0.9630909107115582393e-5;
2604  xp = 2.55060238e-7;
2605  yp = 1.860359247e-6;
2606 
2607  eraC2tpe(tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t);
2608 
2609  vvd(rc2t[0][0], -0.1813677995763029394, 1e-12,
2610  "eraC2tpe", "11", status);
2611  vvd(rc2t[0][1], 0.9023482206891683275, 1e-12,
2612  "eraC2tpe", "12", status);
2613  vvd(rc2t[0][2], -0.3909902938641085751, 1e-12,
2614  "eraC2tpe", "13", status);
2615 
2616  vvd(rc2t[1][0], -0.9834147641476804807, 1e-12,
2617  "eraC2tpe", "21", status);
2618  vvd(rc2t[1][1], -0.1659883635434995121, 1e-12,
2619  "eraC2tpe", "22", status);
2620  vvd(rc2t[1][2], 0.7309763898042819705e-1, 1e-12,
2621  "eraC2tpe", "23", status);
2622 
2623  vvd(rc2t[2][0], 0.1059685430673215247e-2, 1e-12,
2624  "eraC2tpe", "31", status);
2625  vvd(rc2t[2][1], 0.3977631855605078674, 1e-12,
2626  "eraC2tpe", "32", status);
2627  vvd(rc2t[2][2], 0.9174875068792735362, 1e-12,
2628  "eraC2tpe", "33", status);
2629 
2630 }
2631 
2632 static void t_c2txy(int *status)
2633 /*
2634 ** - - - - - - - -
2635 ** t _ c 2 t x y
2636 ** - - - - - - - -
2637 **
2638 ** Test eraC2txy function.
2639 **
2640 ** Returned:
2641 ** status int FALSE = success, TRUE = fail
2642 **
2643 ** Called: eraC2txy, vvd
2644 **
2645 ** This revision: 2013 August 7
2646 */
2647 {
2648  double tta, ttb, uta, utb, x, y, xp, yp, rc2t[3][3];
2649 
2650 
2651  tta = 2400000.5;
2652  uta = 2400000.5;
2653  ttb = 53736.0;
2654  utb = 53736.0;
2655  x = 0.5791308486706011000e-3;
2656  y = 0.4020579816732961219e-4;
2657  xp = 2.55060238e-7;
2658  yp = 1.860359247e-6;
2659 
2660  eraC2txy(tta, ttb, uta, utb, x, y, xp, yp, rc2t);
2661 
2662  vvd(rc2t[0][0], -0.1810332128306279253, 1e-12,
2663  "eraC2txy", "11", status);
2664  vvd(rc2t[0][1], 0.9834769806938520084, 1e-12,
2665  "eraC2txy", "12", status);
2666  vvd(rc2t[0][2], 0.6555551248057665829e-4, 1e-12,
2667  "eraC2txy", "13", status);
2668 
2669  vvd(rc2t[1][0], -0.9834768134136142314, 1e-12,
2670  "eraC2txy", "21", status);
2671  vvd(rc2t[1][1], -0.1810332203649529312, 1e-12,
2672  "eraC2txy", "22", status);
2673  vvd(rc2t[1][2], 0.5749800843594139912e-3, 1e-12,
2674  "eraC2txy", "23", status);
2675 
2676  vvd(rc2t[2][0], 0.5773474028619264494e-3, 1e-12,
2677  "eraC2txy", "31", status);
2678  vvd(rc2t[2][1], 0.3961816546911624260e-4, 1e-12,
2679  "eraC2txy", "32", status);
2680  vvd(rc2t[2][2], 0.9999998325501746670, 1e-12,
2681  "eraC2txy", "33", status);
2682 
2683 }
2684 
2685 static void t_cal2jd(int *status)
2686 /*
2687 ** - - - - - - - - -
2688 ** t _ c a l 2 j d
2689 ** - - - - - - - - -
2690 **
2691 ** Test eraCal2jd function.
2692 **
2693 ** Returned:
2694 ** status int FALSE = success, TRUE = fail
2695 **
2696 ** Called: eraCal2jd, vvd, viv
2697 **
2698 ** This revision: 2013 August 7
2699 */
2700 {
2701  int j;
2702  double djm0, djm;
2703 
2704 
2705  j = eraCal2jd(2003, 06, 01, &djm0, &djm);
2706 
2707  vvd(djm0, 2400000.5, 0.0, "eraCal2jd", "djm0", status);
2708  vvd(djm, 52791.0, 0.0, "eraCal2jd", "djm", status);
2709 
2710  viv(j, 0, "eraCal2jd", "j", status);
2711 
2712 }
2713 
2714 static void t_cp(int *status)
2715 /*
2716 ** - - - - -
2717 ** t _ c p
2718 ** - - - - -
2719 **
2720 ** Test eraCp function.
2721 **
2722 ** Returned:
2723 ** status int FALSE = success, TRUE = fail
2724 **
2725 ** Called: eraCp, vvd
2726 **
2727 ** This revision: 2013 August 7
2728 */
2729 {
2730  double p[3], c[3];
2731 
2732 
2733  p[0] = 0.3;
2734  p[1] = 1.2;
2735  p[2] = -2.5;
2736 
2737  eraCp(p, c);
2738 
2739  vvd(c[0], 0.3, 0.0, "eraCp", "1", status);
2740  vvd(c[1], 1.2, 0.0, "eraCp", "2", status);
2741  vvd(c[2], -2.5, 0.0, "eraCp", "3", status);
2742 }
2743 
2744 static void t_cpv(int *status)
2745 /*
2746 ** - - - - - -
2747 ** t _ c p v
2748 ** - - - - - -
2749 **
2750 ** Test eraCpv function.
2751 **
2752 ** Returned:
2753 ** status int FALSE = success, TRUE = fail
2754 **
2755 ** Called: eraCpv, vvd
2756 **
2757 ** This revision: 2013 August 7
2758 */
2759 {
2760  double pv[2][3], c[2][3];
2761 
2762 
2763  pv[0][0] = 0.3;
2764  pv[0][1] = 1.2;
2765  pv[0][2] = -2.5;
2766 
2767  pv[1][0] = -0.5;
2768  pv[1][1] = 3.1;
2769  pv[1][2] = 0.9;
2770 
2771  eraCpv(pv, c);
2772 
2773  vvd(c[0][0], 0.3, 0.0, "eraCpv", "p1", status);
2774  vvd(c[0][1], 1.2, 0.0, "eraCpv", "p2", status);
2775  vvd(c[0][2], -2.5, 0.0, "eraCpv", "p3", status);
2776 
2777  vvd(c[1][0], -0.5, 0.0, "eraCpv", "v1", status);
2778  vvd(c[1][1], 3.1, 0.0, "eraCpv", "v2", status);
2779  vvd(c[1][2], 0.9, 0.0, "eraCpv", "v3", status);
2780 
2781 }
2782 
2783 static void t_cr(int *status)
2784 /*
2785 ** - - - - -
2786 ** t _ c r
2787 ** - - - - -
2788 **
2789 ** Test eraCr function.
2790 **
2791 ** Returned:
2792 ** status int FALSE = success, TRUE = fail
2793 **
2794 ** Called: eraCr, vvd
2795 **
2796 ** This revision: 2013 August 7
2797 */
2798 {
2799  double r[3][3], c[3][3];
2800 
2801 
2802  r[0][0] = 2.0;
2803  r[0][1] = 3.0;
2804  r[0][2] = 2.0;
2805 
2806  r[1][0] = 3.0;
2807  r[1][1] = 2.0;
2808  r[1][2] = 3.0;
2809 
2810  r[2][0] = 3.0;
2811  r[2][1] = 4.0;
2812  r[2][2] = 5.0;
2813 
2814  eraCr(r, c);
2815 
2816  vvd(c[0][0], 2.0, 0.0, "eraCr", "11", status);
2817  vvd(c[0][1], 3.0, 0.0, "eraCr", "12", status);
2818  vvd(c[0][2], 2.0, 0.0, "eraCr", "13", status);
2819 
2820  vvd(c[1][0], 3.0, 0.0, "eraCr", "21", status);
2821  vvd(c[1][1], 2.0, 0.0, "eraCr", "22", status);
2822  vvd(c[1][2], 3.0, 0.0, "eraCr", "23", status);
2823 
2824  vvd(c[2][0], 3.0, 0.0, "eraCr", "31", status);
2825  vvd(c[2][1], 4.0, 0.0, "eraCr", "32", status);
2826  vvd(c[2][2], 5.0, 0.0, "eraCr", "33", status);
2827 }
2828 
2829 static void t_d2dtf(int *status )
2830 /*
2831 ** - - - - - - - -
2832 ** t _ d 2 d t f
2833 ** - - - - - - - -
2834 **
2835 ** Test eraD2dtf function.
2836 **
2837 ** Returned:
2838 ** status int FALSE = success, TRUE = fail
2839 **
2840 ** Called: eraD2dtf, viv
2841 **
2842 ** This revision: 2013 August 7
2843 */
2844 {
2845  int j, iy, im, id, ihmsf[4];
2846 
2847 
2848  j = eraD2dtf("UTC", 5, 2400000.5, 49533.99999, &iy, &im, &id, ihmsf);
2849 
2850  viv(iy, 1994, "eraD2dtf", "y", status);
2851  viv(im, 6, "eraD2dtf", "mo", status);
2852  viv(id, 30, "eraD2dtf", "d", status);
2853  viv(ihmsf[0], 23, "eraD2dtf", "h", status);
2854  viv(ihmsf[1], 59, "eraD2dtf", "m", status);
2855  viv(ihmsf[2], 60, "eraD2dtf", "s", status);
2856  viv(ihmsf[3], 13599, "eraD2dtf", "f", status);
2857  viv(j, 0, "eraD2dtf", "j", status);
2858 
2859 }
2860 
2861 static void t_d2tf(int *status)
2862 /*
2863 ** - - - - - - -
2864 ** t _ d 2 t f
2865 ** - - - - - - -
2866 **
2867 ** Test eraD2tf function.
2868 **
2869 ** Returned:
2870 ** status int FALSE = success, TRUE = fail
2871 **
2872 ** Called: eraD2tf, viv, vvd
2873 **
2874 ** This revision: 2013 August 7
2875 */
2876 {
2877  int ihmsf[4];
2878  char s;
2879 
2880 
2881  eraD2tf(4, -0.987654321, &s, ihmsf);
2882 
2883  viv((int)s, '-', "eraD2tf", "s", status);
2884 
2885  viv(ihmsf[0], 23, "eraD2tf", "0", status);
2886  viv(ihmsf[1], 42, "eraD2tf", "1", status);
2887  viv(ihmsf[2], 13, "eraD2tf", "2", status);
2888  viv(ihmsf[3], 3333, "eraD2tf", "3", status);
2889 
2890 }
2891 
2892 static void t_dat(int *status)
2893 /*
2894 ** - - - - - -
2895 ** t _ d a t
2896 ** - - - - - -
2897 **
2898 ** Test eraDat function.
2899 **
2900 ** Returned:
2901 ** status int FALSE = success, TRUE = fail
2902 **
2903 ** Called: eraDat, vvd, viv
2904 **
2905 ** This revision: 2015 January 30
2906 */
2907 {
2908  int j;
2909  double deltat;
2910 
2911 
2912  j = eraDat(2003, 6, 1, 0.0, &deltat);
2913 
2914  vvd(deltat, 32.0, 0.0, "eraDat", "d1", status);
2915  viv(j, 0, "eraDat", "j1", status);
2916 
2917  j = eraDat(2008, 1, 17, 0.0, &deltat);
2918 
2919  vvd(deltat, 33.0, 0.0, "eraDat", "d2", status);
2920  viv(j, 0, "eraDat", "j2", status);
2921 
2922  j = eraDat(2015, 9, 1, 0.0, &deltat);
2923 
2924  vvd(deltat, 36.0, 0.0, "eraDat", "d3", status);
2925  viv(j, 0, "eraDat", "j3", status);
2926 
2927 }
2928 
2929 static void t_dtdb(int *status)
2930 /*
2931 ** - - - - - - -
2932 ** t _ d t d b
2933 ** - - - - - - -
2934 **
2935 ** Test eraDtdb function.
2936 **
2937 ** Returned:
2938 ** status int FALSE = success, TRUE = fail
2939 **
2940 ** Called: eraDtdb, vvd
2941 **
2942 ** This revision: 2013 August 7
2943 */
2944 {
2945  double dtdb;
2946 
2947 
2948  dtdb = eraDtdb(2448939.5, 0.123, 0.76543, 5.0123, 5525.242, 3190.0);
2949 
2950  vvd(dtdb, -0.1280368005936998991e-2, 1e-15, "eraDtdb", "", status);
2951 
2952 }
2953 
2954 static void t_dtf2d(int *status)
2955 /*
2956 ** - - - - - - - -
2957 ** t _ d t f 2 d
2958 ** - - - - - - - -
2959 **
2960 ** Test eraDtf2d function.
2961 **
2962 ** Returned:
2963 ** status int FALSE = success, TRUE = fail
2964 **
2965 ** Called: eraDtf2d, vvd, viv
2966 **
2967 ** This revision: 2013 August 7
2968 */
2969 {
2970  double u1, u2;
2971  int j;
2972 
2973 
2974  j = eraDtf2d("UTC", 1994, 6, 30, 23, 59, 60.13599, &u1, &u2);
2975 
2976  vvd(u1+u2, 2449534.49999, 1e-6, "eraDtf2d", "u", status);
2977  viv(j, 0, "eraDtf2d", "j", status);
2978 
2979 }
2980 
2981 static void t_ee00(int *status)
2982 /*
2983 ** - - - - - - -
2984 ** t _ e e 0 0
2985 ** - - - - - - -
2986 **
2987 ** Test eraEe00 function.
2988 **
2989 ** Returned:
2990 ** status int FALSE = success, TRUE = fail
2991 **
2992 ** Called: eraEe00, vvd
2993 **
2994 ** This revision: 2013 August 7
2995 */
2996 {
2997  double epsa, dpsi, ee;
2998 
2999 
3000  epsa = 0.4090789763356509900;
3001  dpsi = -0.9630909107115582393e-5;
3002 
3003  ee = eraEe00(2400000.5, 53736.0, epsa, dpsi);
3004 
3005  vvd(ee, -0.8834193235367965479e-5, 1e-18, "eraEe00", "", status);
3006 
3007 }
3008 
3009 static void t_ee00a(int *status)
3010 /*
3011 ** - - - - - - - -
3012 ** t _ e e 0 0 a
3013 ** - - - - - - - -
3014 **
3015 ** Test eraEe00a function.
3016 **
3017 ** Returned:
3018 ** status int FALSE = success, TRUE = fail
3019 **
3020 ** Called: eraEe00a, vvd
3021 **
3022 ** This revision: 2013 August 7
3023 */
3024 {
3025  double ee;
3026 
3027 
3028  ee = eraEe00a(2400000.5, 53736.0);
3029 
3030  vvd(ee, -0.8834192459222588227e-5, 1e-18, "eraEe00a", "", status);
3031 
3032 }
3033 
3034 static void t_ee00b(int *status)
3035 /*
3036 ** - - - - - - - -
3037 ** t _ e e 0 0 b
3038 ** - - - - - - - -
3039 **
3040 ** Test eraEe00b function.
3041 **
3042 ** Returned:
3043 ** status int FALSE = success, TRUE = fail
3044 **
3045 ** Called: eraEe00b, vvd
3046 **
3047 ** This revision: 2013 August 7
3048 */
3049 {
3050  double ee;
3051 
3052 
3053  ee = eraEe00b(2400000.5, 53736.0);
3054 
3055  vvd(ee, -0.8835700060003032831e-5, 1e-18, "eraEe00b", "", status);
3056 
3057 }
3058 
3059 static void t_ee06a(int *status)
3060 /*
3061 ** - - - - - - - -
3062 ** t _ e e 0 6 a
3063 ** - - - - - - - -
3064 **
3065 ** Test eraEe06a function.
3066 **
3067 ** Returned:
3068 ** status int FALSE = success, TRUE = fail
3069 **
3070 ** Called: eraEe06a, vvd
3071 **
3072 ** This revision: 2013 August 7
3073 */
3074 {
3075  double ee;
3076 
3077 
3078  ee = eraEe06a(2400000.5, 53736.0);
3079 
3080  vvd(ee, -0.8834195072043790156e-5, 1e-15, "eraEe06a", "", status);
3081 }
3082 
3083 static void t_eect00(int *status)
3084 /*
3085 ** - - - - - - - - -
3086 ** t _ e e c t 0 0
3087 ** - - - - - - - - -
3088 **
3089 ** Test eraEect00 function.
3090 **
3091 ** Returned:
3092 ** status int FALSE = success, TRUE = fail
3093 **
3094 ** Called: eraEect00, vvd
3095 **
3096 ** This revision: 2013 August 7
3097 */
3098 {
3099  double eect;
3100 
3101 
3102  eect = eraEect00(2400000.5, 53736.0);
3103 
3104  vvd(eect, 0.2046085004885125264e-8, 1e-20, "eraEect00", "", status);
3105 
3106 }
3107 
3108 static void t_eform(int *status)
3109 /*
3110 ** - - - - - - - -
3111 ** t _ e f o r m
3112 ** - - - - - - - -
3113 **
3114 ** Test eraEform function.
3115 **
3116 ** Returned:
3117 ** status int FALSE = success, TRUE = fail
3118 **
3119 ** Called: eraEform, viv, vvd
3120 **
3121 ** This revision: 2013 August 7
3122 */
3123 {
3124  int j;
3125  double a, f;
3126 
3127  j = eraEform(0, &a, &f);
3128 
3129  viv(j, -1, "eraEform", "j0", status);
3130 
3131  j = eraEform(ERFA_WGS84, &a, &f);
3132 
3133  viv(j, 0, "eraEform", "j1", status);
3134  vvd(a, 6378137.0, 1e-10, "eraEform", "a1", status);
3135  vvd(f, 0.0033528106647474807, 1e-18, "eraEform", "f1", status);
3136 
3137  j = eraEform(ERFA_GRS80, &a, &f);
3138 
3139  viv(j, 0, "eraEform", "j2", status);
3140  vvd(a, 6378137.0, 1e-10, "eraEform", "a2", status);
3141  vvd(f, 0.0033528106811823189, 1e-18, "eraEform", "f2", status);
3142 
3143  j = eraEform(ERFA_WGS72, &a, &f);
3144 
3145  viv(j, 0, "eraEform", "j2", status);
3146  vvd(a, 6378135.0, 1e-10, "eraEform", "a3", status);
3147  vvd(f, 0.0033527794541675049, 1e-18, "eraEform", "f3", status);
3148 
3149  j = eraEform(4, &a, &f);
3150  viv(j, -1, "eraEform", "j3", status);
3151 }
3152 
3153 static void t_eo06a(int *status)
3154 /*
3155 ** - - - - - - - -
3156 ** t _ e o 0 6 a
3157 ** - - - - - - - -
3158 **
3159 ** Test eraEo06a function.
3160 **
3161 ** Returned:
3162 ** status int FALSE = success, TRUE = fail
3163 **
3164 ** Called: eraEo06a, vvd
3165 **
3166 ** This revision: 2013 August 7
3167 */
3168 {
3169  double eo;
3170 
3171 
3172  eo = eraEo06a(2400000.5, 53736.0);
3173 
3174  vvd(eo, -0.1332882371941833644e-2, 1e-15, "eraEo06a", "", status);
3175 
3176 }
3177 
3178 static void t_eors(int *status)
3179 /*
3180 ** - - - - - - -
3181 ** t _ e o r s
3182 ** - - - - - - -
3183 **
3184 ** Test eraEors function.
3185 **
3186 ** Returned:
3187 ** status int FALSE = success, TRUE = fail
3188 **
3189 ** Called: eraEors, vvd
3190 **
3191 ** This revision: 2013 August 7
3192 */
3193 {
3194  double rnpb[3][3], s, eo;
3195 
3196 
3197  rnpb[0][0] = 0.9999989440476103608;
3198  rnpb[0][1] = -0.1332881761240011518e-2;
3199  rnpb[0][2] = -0.5790767434730085097e-3;
3200 
3201  rnpb[1][0] = 0.1332858254308954453e-2;
3202  rnpb[1][1] = 0.9999991109044505944;
3203  rnpb[1][2] = -0.4097782710401555759e-4;
3204 
3205  rnpb[2][0] = 0.5791308472168153320e-3;
3206  rnpb[2][1] = 0.4020595661593994396e-4;
3207  rnpb[2][2] = 0.9999998314954572365;
3208 
3209  s = -0.1220040848472271978e-7;
3210 
3211  eo = eraEors(rnpb, s);
3212 
3213  vvd(eo, -0.1332882715130744606e-2, 1e-14, "eraEors", "", status);
3214 
3215 }
3216 
3217 static void t_epb(int *status)
3218 /*
3219 ** - - - - - -
3220 ** t _ e p b
3221 ** - - - - - -
3222 **
3223 ** Test eraEpb function.
3224 **
3225 ** Returned:
3226 ** status int FALSE = success, TRUE = fail
3227 **
3228 ** Called: eraEpb, vvd
3229 **
3230 ** This revision: 2013 August 7
3231 */
3232 {
3233  double epb;
3234 
3235 
3236  epb = eraEpb(2415019.8135, 30103.18648);
3237 
3238  vvd(epb, 1982.418424159278580, 1e-12, "eraEpb", "", status);
3239 
3240 }
3241 
3242 static void t_epb2jd(int *status)
3243 /*
3244 ** - - - - - - - - -
3245 ** t _ e p b 2 j d
3246 ** - - - - - - - - -
3247 **
3248 ** Test eraEpb2jd function.
3249 **
3250 ** Returned:
3251 ** status int FALSE = success, TRUE = fail
3252 **
3253 ** Called: eraEpb2jd, vvd
3254 **
3255 ** This revision: 2013 August 7
3256 */
3257 {
3258  double epb, djm0, djm;
3259 
3260 
3261  epb = 1957.3;
3262 
3263  eraEpb2jd(epb, &djm0, &djm);
3264 
3265  vvd(djm0, 2400000.5, 1e-9, "eraEpb2jd", "djm0", status);
3266  vvd(djm, 35948.1915101513, 1e-9, "eraEpb2jd", "mjd", status);
3267 
3268 }
3269 
3270 static void t_epj(int *status)
3271 /*
3272 ** - - - - - -
3273 ** t _ e p j
3274 ** - - - - - -
3275 **
3276 ** Test eraEpj function.
3277 **
3278 ** Returned:
3279 ** status int FALSE = success, TRUE = fail
3280 **
3281 ** Called: eraEpj, vvd
3282 **
3283 ** This revision: 2013 August 7
3284 */
3285 {
3286  double epj;
3287 
3288 
3289  epj = eraEpj(2451545, -7392.5);
3290 
3291  vvd(epj, 1979.760438056125941, 1e-12, "eraEpj", "", status);
3292 
3293 }
3294 
3295 static void t_epj2jd(int *status)
3296 /*
3297 ** - - - - - - - - -
3298 ** t _ e p j 2 j d
3299 ** - - - - - - - - -
3300 **
3301 ** Test eraEpj2jd function.
3302 **
3303 ** Returned:
3304 ** status int FALSE = success, TRUE = fail
3305 **
3306 ** Called: eraEpj2jd, vvd
3307 **
3308 ** This revision: 2013 August 7
3309 */
3310 {
3311  double epj, djm0, djm;
3312 
3313 
3314  epj = 1996.8;
3315 
3316  eraEpj2jd(epj, &djm0, &djm);
3317 
3318  vvd(djm0, 2400000.5, 1e-9, "eraEpj2jd", "djm0", status);
3319  vvd(djm, 50375.7, 1e-9, "eraEpj2jd", "mjd", status);
3320 
3321 }
3322 
3323 static void t_epv00(int *status)
3324 /*
3325 ** - - - - - - - -
3326 ** t _ e p v 0 0
3327 ** - - - - - - - -
3328 **
3329 ** Test eraEpv00 function.
3330 **
3331 ** Returned:
3332 ** status int FALSE = success, TRUE = fail
3333 **
3334 ** Called: eraEpv00, vvd, viv
3335 **
3336 ** This revision: 2013 August 7
3337 */
3338 {
3339  double pvh[2][3], pvb[2][3];
3340  int j;
3341 
3342 
3343  j = eraEpv00(2400000.5, 53411.52501161, pvh, pvb);
3344 
3345  vvd(pvh[0][0], -0.7757238809297706813, 1e-14,
3346  "eraEpv00", "ph(x)", status);
3347  vvd(pvh[0][1], 0.5598052241363340596, 1e-14,
3348  "eraEpv00", "ph(y)", status);
3349  vvd(pvh[0][2], 0.2426998466481686993, 1e-14,
3350  "eraEpv00", "ph(z)", status);
3351 
3352  vvd(pvh[1][0], -0.1091891824147313846e-1, 1e-15,
3353  "eraEpv00", "vh(x)", status);
3354  vvd(pvh[1][1], -0.1247187268440845008e-1, 1e-15,
3355  "eraEpv00", "vh(y)", status);
3356  vvd(pvh[1][2], -0.5407569418065039061e-2, 1e-15,
3357  "eraEpv00", "vh(z)", status);
3358 
3359  vvd(pvb[0][0], -0.7714104440491111971, 1e-14,
3360  "eraEpv00", "pb(x)", status);
3361  vvd(pvb[0][1], 0.5598412061824171323, 1e-14,
3362  "eraEpv00", "pb(y)", status);
3363  vvd(pvb[0][2], 0.2425996277722452400, 1e-14,
3364  "eraEpv00", "pb(z)", status);
3365 
3366  vvd(pvb[1][0], -0.1091874268116823295e-1, 1e-15,
3367  "eraEpv00", "vb(x)", status);
3368  vvd(pvb[1][1], -0.1246525461732861538e-1, 1e-15,
3369  "eraEpv00", "vb(y)", status);
3370  vvd(pvb[1][2], -0.5404773180966231279e-2, 1e-15,
3371  "eraEpv00", "vb(z)", status);
3372 
3373  viv(j, 0, "eraEpv00", "j", status);
3374 
3375 }
3376 
3377 static void t_eqeq94(int *status)
3378 /*
3379 ** - - - - - - - - -
3380 ** t _ e q e q 9 4
3381 ** - - - - - - - - -
3382 **
3383 ** Test eraEqeq94 function.
3384 **
3385 ** Returned:
3386 ** status int FALSE = success, TRUE = fail
3387 **
3388 ** Called: eraEqeq94, vvd
3389 **
3390 ** This revision: 2013 August 7
3391 */
3392 {
3393  double eqeq;
3394 
3395 
3396  eqeq = eraEqeq94(2400000.5, 41234.0);
3397 
3398  vvd(eqeq, 0.5357758254609256894e-4, 1e-17, "eraEqeq94", "", status);
3399 
3400 }
3401 
3402 static void t_era00(int *status)
3403 /*
3404 ** - - - - - - - -
3405 ** t _ e r a 0 0
3406 ** - - - - - - - -
3407 **
3408 ** Test eraEra00 function.
3409 **
3410 ** Returned:
3411 ** status int FALSE = success, TRUE = fail
3412 **
3413 ** Called: eraEra00, vvd
3414 **
3415 ** This revision: 2013 August 7
3416 */
3417 {
3418  double era00;
3419 
3420 
3421  era00 = eraEra00(2400000.5, 54388.0);
3422 
3423  vvd(era00, 0.4022837240028158102, 1e-12, "eraEra00", "", status);
3424 
3425 }
3426 
3427 static void t_fad03(int *status)
3428 /*
3429 ** - - - - - - - -
3430 ** t _ f a d 0 3
3431 ** - - - - - - - -
3432 **
3433 ** Test eraFad03 function.
3434 **
3435 ** Returned:
3436 ** status int FALSE = success, TRUE = fail
3437 **
3438 ** Called: eraFad03, vvd
3439 **
3440 ** This revision: 2013 August 7
3441 */
3442 {
3443  vvd(eraFad03(0.80), 1.946709205396925672, 1e-12,
3444  "eraFad03", "", status);
3445 }
3446 
3447 static void t_fae03(int *status)
3448 /*
3449 ** - - - - - - - -
3450 ** t _ f a e 0 3
3451 ** - - - - - - - -
3452 **
3453 ** Test eraFae03 function.
3454 **
3455 ** Returned:
3456 ** status int FALSE = success, TRUE = fail
3457 **
3458 ** Called: eraFae03, vvd
3459 **
3460 ** This revision: 2013 August 7
3461 */
3462 {
3463  vvd(eraFae03(0.80), 1.744713738913081846, 1e-12,
3464  "eraFae03", "", status);
3465 }
3466 
3467 static void t_faf03(int *status)
3468 /*
3469 ** - - - - - - - -
3470 ** t _ f a f 0 3
3471 ** - - - - - - - -
3472 **
3473 ** Test eraFaf03 function.
3474 **
3475 ** Returned:
3476 ** status int FALSE = success, TRUE = fail
3477 **
3478 ** Called: eraFaf03, vvd
3479 **
3480 ** This revision: 2013 August 7
3481 */
3482 {
3483  vvd(eraFaf03(0.80), 0.2597711366745499518, 1e-12,
3484  "eraFaf03", "", status);
3485 }
3486 
3487 static void t_faju03(int *status)
3488 /*
3489 ** - - - - - - - - -
3490 ** t _ f a j u 0 3
3491 ** - - - - - - - - -
3492 **
3493 ** Test eraFaju03 function.
3494 **
3495 ** Returned:
3496 ** status int FALSE = success, TRUE = fail
3497 **
3498 ** Called: eraFaju03, vvd
3499 **
3500 ** This revision: 2013 August 7
3501 */
3502 {
3503  vvd(eraFaju03(0.80), 5.275711665202481138, 1e-12,
3504  "eraFaju03", "", status);
3505 }
3506 
3507 static void t_fal03(int *status)
3508 /*
3509 ** - - - - - - - -
3510 ** t _ f a l 0 3
3511 ** - - - - - - - -
3512 **
3513 ** Test eraFal03 function.
3514 **
3515 ** Returned:
3516 ** status int FALSE = success, TRUE = fail
3517 **
3518 ** Called: eraFal03, vvd
3519 **
3520 ** This revision: 2013 August 7
3521 */
3522 {
3523  vvd(eraFal03(0.80), 5.132369751108684150, 1e-12,
3524  "eraFal03", "", status);
3525 }
3526 
3527 static void t_falp03(int *status)
3528 /*
3529 ** - - - - - - - - -
3530 ** t _ f a l p 0 3
3531 ** - - - - - - - - -
3532 **
3533 ** Test eraFalp03 function.
3534 **
3535 ** Returned:
3536 ** status int FALSE = success, TRUE = fail
3537 **
3538 ** Called: eraFalp03, vvd
3539 **
3540 ** This revision: 2013 August 7
3541 */
3542 {
3543  vvd(eraFalp03(0.80), 6.226797973505507345, 1e-12,
3544  "eraFalp03", "", status);
3545 }
3546 
3547 static void t_fama03(int *status)
3548 /*
3549 ** - - - - - - - - -
3550 ** t _ f a m a 0 3
3551 ** - - - - - - - - -
3552 **
3553 ** Test eraFama03 function.
3554 **
3555 ** Returned:
3556 ** status int FALSE = success, TRUE = fail
3557 **
3558 ** Called: eraFama03, vvd
3559 **
3560 ** This revision: 2013 August 7
3561 */
3562 {
3563  vvd(eraFama03(0.80), 3.275506840277781492, 1e-12,
3564  "eraFama03", "", status);
3565 }
3566 
3567 static void t_fame03(int *status)
3568 /*
3569 ** - - - - - - - - -
3570 ** t _ f a m e 0 3
3571 ** - - - - - - - - -
3572 **
3573 ** Test eraFame03 function.
3574 **
3575 ** Returned:
3576 ** status int FALSE = success, TRUE = fail
3577 **
3578 ** Called: eraFame03, vvd
3579 **
3580 ** This revision: 2013 August 7
3581 */
3582 {
3583  vvd(eraFame03(0.80), 5.417338184297289661, 1e-12,
3584  "eraFame03", "", status);
3585 }
3586 
3587 static void t_fane03(int *status)
3588 /*
3589 ** - - - - - - - - -
3590 ** t _ f a n e 0 3
3591 ** - - - - - - - - -
3592 **
3593 ** Test eraFane03 function.
3594 **
3595 ** Returned:
3596 ** status int FALSE = success, TRUE = fail
3597 **
3598 ** Called: eraFane03, vvd
3599 **
3600 ** This revision: 2013 August 7
3601 */
3602 {
3603  vvd(eraFane03(0.80), 2.079343830860413523, 1e-12,
3604  "eraFane03", "", status);
3605 }
3606 
3607 static void t_faom03(int *status)
3608 /*
3609 ** - - - - - - - - -
3610 ** t _ f a o m 0 3
3611 ** - - - - - - - - -
3612 **
3613 ** Test eraFaom03 function.
3614 **
3615 ** Returned:
3616 ** status int FALSE = success, TRUE = fail
3617 **
3618 ** Called: eraFaom03, vvd
3619 **
3620 ** This revision: 2013 August 7
3621 */
3622 {
3623  vvd(eraFaom03(0.80), -5.973618440951302183, 1e-12,
3624  "eraFaom03", "", status);
3625 }
3626 
3627 static void t_fapa03(int *status)
3628 /*
3629 ** - - - - - - - - -
3630 ** t _ f a p a 0 3
3631 ** - - - - - - - - -
3632 **
3633 ** Test eraFapa03 function.
3634 **
3635 ** Returned:
3636 ** status int FALSE = success, TRUE = fail
3637 **
3638 ** Called: eraFapa03, vvd
3639 **
3640 ** This revision: 2013 August 7
3641 */
3642 {
3643  vvd(eraFapa03(0.80), 0.1950884762240000000e-1, 1e-12,
3644  "eraFapa03", "", status);
3645 }
3646 
3647 static void t_fasa03(int *status)
3648 /*
3649 ** - - - - - - - - -
3650 ** t _ f a s a 0 3
3651 ** - - - - - - - - -
3652 **
3653 ** Test eraFasa03 function.
3654 **
3655 ** Returned:
3656 ** status int FALSE = success, TRUE = fail
3657 **
3658 ** Called: eraFasa03, vvd
3659 **
3660 ** This revision: 2013 August 7
3661 */
3662 {
3663  vvd(eraFasa03(0.80), 5.371574539440827046, 1e-12,
3664  "eraFasa03", "", status);
3665 }
3666 
3667 static void t_faur03(int *status)
3668 /*
3669 ** - - - - - - - - -
3670 ** t _ f a u r 0 3
3671 ** - - - - - - - - -
3672 **
3673 ** Test eraFaur03 function.
3674 **
3675 ** Returned:
3676 ** status int FALSE = success, TRUE = fail
3677 **
3678 ** Called: eraFaur03, vvd
3679 **
3680 ** This revision: 2013 August 7
3681 */
3682 {
3683  vvd(eraFaur03(0.80), 5.180636450180413523, 1e-12,
3684  "eraFaur03", "", status);
3685 }
3686 
3687 static void t_fave03(int *status)
3688 /*
3689 ** - - - - - - - - -
3690 ** t _ f a v e 0 3
3691 ** - - - - - - - - -
3692 **
3693 ** Test eraFave03 function.
3694 **
3695 ** Returned:
3696 ** status int FALSE = success, TRUE = fail
3697 **
3698 ** Called: eraFave03, vvd
3699 **
3700 ** This revision: 2013 August 7
3701 */
3702 {
3703  vvd(eraFave03(0.80), 3.424900460533758000, 1e-12,
3704  "eraFave03", "", status);
3705 }
3706 
3707 static void t_fk52h(int *status)
3708 /*
3709 ** - - - - - - - -
3710 ** t _ f k 5 2 h
3711 ** - - - - - - - -
3712 **
3713 ** Test eraFk52h function.
3714 **
3715 ** Returned:
3716 ** status int FALSE = success, TRUE = fail
3717 **
3718 ** Called: eraFk52h, vvd
3719 **
3720 ** This revision: 2013 August 7
3721 */
3722 {
3723  double r5, d5, dr5, dd5, px5, rv5, rh, dh, drh, ddh, pxh, rvh;
3724 
3725 
3726  r5 = 1.76779433;
3727  d5 = -0.2917517103;
3728  dr5 = -1.91851572e-7;
3729  dd5 = -5.8468475e-6;
3730  px5 = 0.379210;
3731  rv5 = -7.6;
3732 
3733  eraFk52h(r5, d5, dr5, dd5, px5, rv5,
3734  &rh, &dh, &drh, &ddh, &pxh, &rvh);
3735 
3736  vvd(rh, 1.767794226299947632, 1e-14,
3737  "eraFk52h", "ra", status);
3738  vvd(dh, -0.2917516070530391757, 1e-14,
3739  "eraFk52h", "dec", status);
3740  vvd(drh, -0.19618741256057224e-6,1e-19,
3741  "eraFk52h", "dr5", status);
3742  vvd(ddh, -0.58459905176693911e-5, 1e-19,
3743  "eraFk52h", "dd5", status);
3744  vvd(pxh, 0.37921, 1e-14,
3745  "eraFk52h", "px", status);
3746  vvd(rvh, -7.6000000940000254, 1e-11,
3747  "eraFk52h", "rv", status);
3748 
3749 }
3750 
3751 static void t_fk5hip(int *status)
3752 /*
3753 ** - - - - - - - - -
3754 ** t _ f k 5 h i p
3755 ** - - - - - - - - -
3756 **
3757 ** Test eraFk5hip function.
3758 **
3759 ** Returned:
3760 ** status int FALSE = success, TRUE = fail
3761 **
3762 ** Called: eraFk5hip, vvd
3763 **
3764 ** This revision: 2013 August 7
3765 */
3766 {
3767  double r5h[3][3], s5h[3];
3768 
3769 
3770  eraFk5hip(r5h, s5h);
3771 
3772  vvd(r5h[0][0], 0.9999999999999928638, 1e-14,
3773  "eraFk5hip", "11", status);
3774  vvd(r5h[0][1], 0.1110223351022919694e-6, 1e-17,
3775  "eraFk5hip", "12", status);
3776  vvd(r5h[0][2], 0.4411803962536558154e-7, 1e-17,
3777  "eraFk5hip", "13", status);
3778  vvd(r5h[1][0], -0.1110223308458746430e-6, 1e-17,
3779  "eraFk5hip", "21", status);
3780  vvd(r5h[1][1], 0.9999999999999891830, 1e-14,
3781  "eraFk5hip", "22", status);
3782  vvd(r5h[1][2], -0.9647792498984142358e-7, 1e-17,
3783  "eraFk5hip", "23", status);
3784  vvd(r5h[2][0], -0.4411805033656962252e-7, 1e-17,
3785  "eraFk5hip", "31", status);
3786  vvd(r5h[2][1], 0.9647792009175314354e-7, 1e-17,
3787  "eraFk5hip", "32", status);
3788  vvd(r5h[2][2], 0.9999999999999943728, 1e-14,
3789  "eraFk5hip", "33", status);
3790  vvd(s5h[0], -0.1454441043328607981e-8, 1e-17,
3791  "eraFk5hip", "s1", status);
3792  vvd(s5h[1], 0.2908882086657215962e-8, 1e-17,
3793  "eraFk5hip", "s2", status);
3794  vvd(s5h[2], 0.3393695767766751955e-8, 1e-17,
3795  "eraFk5hip", "s3", status);
3796 
3797 }
3798 
3799 static void t_fk5hz(int *status)
3800 /*
3801 ** - - - - - - - -
3802 ** t _ f k 5 h z
3803 ** - - - - - - - -
3804 **
3805 ** Test eraFk5hz function.
3806 **
3807 ** Returned:
3808 ** status int FALSE = success, TRUE = fail
3809 **
3810 ** Called: eraFk5hz, vvd
3811 **
3812 ** This revision: 2013 August 7
3813 */
3814 {
3815  double r5, d5, rh, dh;
3816 
3817 
3818  r5 = 1.76779433;
3819  d5 = -0.2917517103;
3820 
3821  eraFk5hz(r5, d5, 2400000.5, 54479.0, &rh, &dh);
3822 
3823  vvd(rh, 1.767794191464423978, 1e-12, "eraFk5hz", "ra", status);
3824  vvd(dh, -0.2917516001679884419, 1e-12, "eraFk5hz", "dec", status);
3825 
3826 }
3827 
3828 static void t_fw2m(int *status)
3829 /*
3830 ** - - - - - - -
3831 ** t _ f w 2 m
3832 ** - - - - - - -
3833 **
3834 ** Test eraFw2m function.
3835 **
3836 ** Returned:
3837 ** status int FALSE = success, TRUE = fail
3838 **
3839 ** Called: eraFw2m, vvd
3840 **
3841 ** This revision: 2013 August 7
3842 */
3843 {
3844  double gamb, phib, psi, eps, r[3][3];
3845 
3846 
3847  gamb = -0.2243387670997992368e-5;
3848  phib = 0.4091014602391312982;
3849  psi = -0.9501954178013015092e-3;
3850  eps = 0.4091014316587367472;
3851 
3852  eraFw2m(gamb, phib, psi, eps, r);
3853 
3854  vvd(r[0][0], 0.9999995505176007047, 1e-12,
3855  "eraFw2m", "11", status);
3856  vvd(r[0][1], 0.8695404617348192957e-3, 1e-12,
3857  "eraFw2m", "12", status);
3858  vvd(r[0][2], 0.3779735201865582571e-3, 1e-12,
3859  "eraFw2m", "13", status);
3860 
3861  vvd(r[1][0], -0.8695404723772016038e-3, 1e-12,
3862  "eraFw2m", "21", status);
3863  vvd(r[1][1], 0.9999996219496027161, 1e-12,
3864  "eraFw2m", "22", status);
3865  vvd(r[1][2], -0.1361752496887100026e-6, 1e-12,
3866  "eraFw2m", "23", status);
3867 
3868  vvd(r[2][0], -0.3779734957034082790e-3, 1e-12,
3869  "eraFw2m", "31", status);
3870  vvd(r[2][1], -0.1924880848087615651e-6, 1e-12,
3871  "eraFw2m", "32", status);
3872  vvd(r[2][2], 0.9999999285679971958, 1e-12,
3873  "eraFw2m", "33", status);
3874 
3875 }
3876 
3877 static void t_fw2xy(int *status)
3878 /*
3879 ** - - - - - - - -
3880 ** t _ f w 2 x y
3881 ** - - - - - - - -
3882 **
3883 ** Test eraFw2xy function.
3884 **
3885 ** Returned:
3886 ** status int FALSE = success, TRUE = fail
3887 **
3888 ** Called: eraFw2xy, vvd
3889 **
3890 ** This revision: 2013 August 7
3891 */
3892 {
3893  double gamb, phib, psi, eps, x, y;
3894 
3895 
3896  gamb = -0.2243387670997992368e-5;
3897  phib = 0.4091014602391312982;
3898  psi = -0.9501954178013015092e-3;
3899  eps = 0.4091014316587367472;
3900 
3901  eraFw2xy(gamb, phib, psi, eps, &x, &y);
3902 
3903  vvd(x, -0.3779734957034082790e-3, 1e-14, "eraFw2xy", "x", status);
3904  vvd(y, -0.1924880848087615651e-6, 1e-14, "eraFw2xy", "y", status);
3905 
3906 }
3907 
3908 static void t_g2icrs(int *status)
3909 /*
3910 ** - - - - - - - - -
3911 ** t _ g 2 i c r s
3912 ** - - - - - - - - -
3913 **
3914 ** Test eraG2icrs function.
3915 **
3916 ** Returned:
3917 ** status int FALSE = success, TRUE = fail
3918 **
3919 ** Called: eraG2icrs, vvd
3920 **
3921 ** This revision: 2015 January 30
3922 */
3923 {
3924  double dl, db, dr, dd;
3925 
3926 
3927  dl = 5.5850536063818546461558105;
3928  db = -0.7853981633974483096156608;
3929  eraG2icrs (dl, db, &dr, &dd);
3930  vvd(dr, 5.9338074302227188048671, 1e-14, "eraG2icrs", "R", status);
3931  vvd(dd, -1.1784870613579944551541, 1e-14, "eraG2icrs", "D", status);
3932  }
3933 
3934 static void t_gc2gd(int *status)
3935 /*
3936 ** - - - - - - - -
3937 ** t _ g c 2 g d
3938 ** - - - - - - - -
3939 **
3940 ** Test eraGc2gd function.
3941 **
3942 ** Returned:
3943 ** status int FALSE = success, TRUE = fail
3944 **
3945 ** Called: eraGc2gd, viv, vvd
3946 **
3947 ** This revision: 2013 August 7
3948 */
3949 {
3950  int j;
3951  double xyz[] = {2e6, 3e6, 5.244e6};
3952  double e, p, h;
3953 
3954  j = eraGc2gd(0, xyz, &e, &p, &h);
3955 
3956  viv(j, -1, "eraGc2gd", "j0", status);
3957 
3958  j = eraGc2gd(ERFA_WGS84, xyz, &e, &p, &h);
3959 
3960  viv(j, 0, "eraGc2gd", "j1", status);
3961  vvd(e, 0.98279372324732907, 1e-14, "eraGc2gd", "e1", status);
3962  vvd(p, 0.97160184819075459, 1e-14, "eraGc2gd", "p1", status);
3963  vvd(h, 331.41724614260599, 1e-8, "eraGc2gd", "h1", status);
3964 
3965  j = eraGc2gd(ERFA_GRS80, xyz, &e, &p, &h);
3966 
3967  viv(j, 0, "eraGc2gd", "j2", status);
3968  vvd(e, 0.98279372324732907, 1e-14, "eraGc2gd", "e2", status);
3969  vvd(p, 0.97160184820607853, 1e-14, "eraGc2gd", "p2", status);
3970  vvd(h, 331.41731754844348, 1e-8, "eraGc2gd", "h2", status);
3971 
3972  j = eraGc2gd(ERFA_WGS72, xyz, &e, &p, &h);
3973 
3974  viv(j, 0, "eraGc2gd", "j3", status);
3975  vvd(e, 0.98279372324732907, 1e-14, "eraGc2gd", "e3", status);
3976  vvd(p, 0.97160181811015119, 1e-14, "eraGc2gd", "p3", status);
3977  vvd(h, 333.27707261303181, 1e-8, "eraGc2gd", "h3", status);
3978 
3979  j = eraGc2gd(4, xyz, &e, &p, &h);
3980 
3981  viv(j, -1, "eraGc2gd", "j4", status);
3982 }
3983 
3984 static void t_gc2gde(int *status)
3985 /*
3986 ** - - - - - - - - -
3987 ** t _ g c 2 g d e
3988 ** - - - - - - - - -
3989 **
3990 ** Test eraGc2gde function.
3991 **
3992 ** Returned:
3993 ** status int FALSE = success, TRUE = fail
3994 **
3995 ** Called: eraGc2gde, viv, vvd
3996 **
3997 ** This revision: 2013 August 7
3998 */
3999 {
4000  int j;
4001  double a = 6378136.0, f = 0.0033528;
4002  double xyz[] = {2e6, 3e6, 5.244e6};
4003  double e, p, h;
4004 
4005  j = eraGc2gde(a, f, xyz, &e, &p, &h);
4006 
4007  viv(j, 0, "eraGc2gde", "j", status);
4008  vvd(e, 0.98279372324732907, 1e-14, "eraGc2gde", "e", status);
4009  vvd(p, 0.97160183775704115, 1e-14, "eraGc2gde", "p", status);
4010  vvd(h, 332.36862495764397, 1e-8, "eraGc2gde", "h", status);
4011 }
4012 
4013 static void t_gd2gc(int *status)
4014 /*
4015 ** - - - - - - - -
4016 ** t _ g d 2 g c
4017 ** - - - - - - - -
4018 **
4019 ** Test eraGd2gc function.
4020 **
4021 ** Returned:
4022 ** status int FALSE = success, TRUE = fail
4023 **
4024 ** Called: eraGd2gc, viv, vvd
4025 **
4026 ** This revision: 2013 August 7
4027 */
4028 {
4029  int j;
4030  double e = 3.1, p = -0.5, h = 2500.0;
4031  double xyz[3];
4032 
4033  j = eraGd2gc(0, e, p, h, xyz);
4034 
4035  viv(j, -1, "eraGd2gc", "j0", status);
4036 
4037  j = eraGd2gc(ERFA_WGS84, e, p, h, xyz);
4038 
4039  viv(j, 0, "eraGd2gc", "j1", status);
4040  vvd(xyz[0], -5599000.5577049947, 1e-7, "eraGd2gc", "0/1", status);
4041  vvd(xyz[1], 233011.67223479203, 1e-7, "eraGd2gc", "1/1", status);
4042  vvd(xyz[2], -3040909.4706983363, 1e-7, "eraGd2gc", "2/1", status);
4043 
4044  j = eraGd2gc(ERFA_GRS80, e, p, h, xyz);
4045 
4046  viv(j, 0, "eraGd2gc", "j2", status);
4047  vvd(xyz[0], -5599000.5577260984, 1e-7, "eraGd2gc", "0/2", status);
4048  vvd(xyz[1], 233011.6722356703, 1e-7, "eraGd2gc", "1/2", status);
4049  vvd(xyz[2], -3040909.4706095476, 1e-7, "eraGd2gc", "2/2", status);
4050 
4051  j = eraGd2gc(ERFA_WGS72, e, p, h, xyz);
4052 
4053  viv(j, 0, "eraGd2gc", "j3", status);
4054  vvd(xyz[0], -5598998.7626301490, 1e-7, "eraGd2gc", "0/3", status);
4055  vvd(xyz[1], 233011.5975297822, 1e-7, "eraGd2gc", "1/3", status);
4056  vvd(xyz[2], -3040908.6861467111, 1e-7, "eraGd2gc", "2/3", status);
4057 
4058  j = eraGd2gc(4, e, p, h, xyz);
4059 
4060  viv(j, -1, "eraGd2gc", "j4", status);
4061 }
4062 
4063 static void t_gd2gce(int *status)
4064 /*
4065 ** - - - - - - - - -
4066 ** t _ g d 2 g c e
4067 ** - - - - - - - - -
4068 **
4069 ** Test eraGd2gce function.
4070 **
4071 ** Returned:
4072 ** status int FALSE = success, TRUE = fail
4073 **
4074 ** Called: eraGd2gce, viv, vvd
4075 **
4076 ** This revision: 2013 August 7
4077 */
4078 {
4079  int j;
4080  double a = 6378136.0, f = 0.0033528;
4081  double e = 3.1, p = -0.5, h = 2500.0;
4082  double xyz[3];
4083 
4084  j = eraGd2gce(a, f, e, p, h, xyz);
4085 
4086  viv(j, 0, "eraGd2gce", "j", status);
4087  vvd(xyz[0], -5598999.6665116328, 1e-7, "eraGd2gce", "0", status);
4088  vvd(xyz[1], 233011.63514630572, 1e-7, "eraGd2gce", "1", status);
4089  vvd(xyz[2], -3040909.0517314132, 1e-7, "eraGd2gce", "2", status);
4090 }
4091 
4092 static void t_gmst00(int *status)
4093 /*
4094 ** - - - - - - - - -
4095 ** t _ g m s t 0 0
4096 ** - - - - - - - - -
4097 **
4098 ** Test eraGmst00 function.
4099 **
4100 ** Returned:
4101 ** status int FALSE = success, TRUE = fail
4102 **
4103 ** Called: eraGmst00, vvd
4104 **
4105 ** This revision: 2013 August 7
4106 */
4107 {
4108  double theta;
4109 
4110 
4111  theta = eraGmst00(2400000.5, 53736.0, 2400000.5, 53736.0);
4112 
4113  vvd(theta, 1.754174972210740592, 1e-12, "eraGmst00", "", status);
4114 
4115 }
4116 
4117 static void t_gmst06(int *status)
4118 /*
4119 ** - - - - - - - - -
4120 ** t _ g m s t 0 6
4121 ** - - - - - - - - -
4122 **
4123 ** Test eraGmst06 function.
4124 **
4125 ** Returned:
4126 ** status int FALSE = success, TRUE = fail
4127 **
4128 ** Called: eraGmst06, vvd
4129 **
4130 ** This revision: 2013 August 7
4131 */
4132 {
4133  double theta;
4134 
4135 
4136  theta = eraGmst06(2400000.5, 53736.0, 2400000.5, 53736.0);
4137 
4138  vvd(theta, 1.754174971870091203, 1e-12, "eraGmst06", "", status);
4139 
4140 }
4141 
4142 static void t_gmst82(int *status)
4143 /*
4144 ** - - - - - - - - -
4145 ** t _ g m s t 8 2
4146 ** - - - - - - - - -
4147 **
4148 ** Test eraGmst82 function.
4149 **
4150 ** Returned:
4151 ** status int FALSE = success, TRUE = fail
4152 **
4153 ** Called: eraGmst82, vvd
4154 **
4155 ** This revision: 2013 August 7
4156 */
4157 {
4158  double theta;
4159 
4160 
4161  theta = eraGmst82(2400000.5, 53736.0);
4162 
4163  vvd(theta, 1.754174981860675096, 1e-12, "eraGmst82", "", status);
4164 
4165 }
4166 
4167 static void t_gst00a(int *status)
4168 /*
4169 ** - - - - - - - - -
4170 ** t _ g s t 0 0 a
4171 ** - - - - - - - - -
4172 **
4173 ** Test eraGst00a function.
4174 **
4175 ** Returned:
4176 ** status int FALSE = success, TRUE = fail
4177 **
4178 ** Called: eraGst00a, vvd
4179 **
4180 ** This revision: 2013 August 7
4181 */
4182 {
4183  double theta;
4184 
4185 
4186  theta = eraGst00a(2400000.5, 53736.0, 2400000.5, 53736.0);
4187 
4188  vvd(theta, 1.754166138018281369, 1e-12, "eraGst00a", "", status);
4189 
4190 }
4191 
4192 static void t_gst00b(int *status)
4193 /*
4194 ** - - - - - - - - -
4195 ** t _ g s t 0 0 b
4196 ** - - - - - - - - -
4197 **
4198 ** Test eraGst00b function.
4199 **
4200 ** Returned:
4201 ** status int FALSE = success, TRUE = fail
4202 **
4203 ** Called: eraGst00b, vvd
4204 **
4205 ** This revision: 2013 August 7
4206 */
4207 {
4208  double theta;
4209 
4210 
4211  theta = eraGst00b(2400000.5, 53736.0);
4212 
4213  vvd(theta, 1.754166136510680589, 1e-12, "eraGst00b", "", status);
4214 
4215 }
4216 
4217 static void t_gst06(int *status)
4218 /*
4219 ** - - - - - - - -
4220 ** t _ g s t 0 6
4221 ** - - - - - - - -
4222 **
4223 ** Test eraGst06 function.
4224 **
4225 ** Returned:
4226 ** status int FALSE = success, TRUE = fail
4227 **
4228 ** Called: eraGst06, vvd
4229 **
4230 ** This revision: 2013 August 7
4231 */
4232 {
4233  double rnpb[3][3], theta;
4234 
4235 
4236  rnpb[0][0] = 0.9999989440476103608;
4237  rnpb[0][1] = -0.1332881761240011518e-2;
4238  rnpb[0][2] = -0.5790767434730085097e-3;
4239 
4240  rnpb[1][0] = 0.1332858254308954453e-2;
4241  rnpb[1][1] = 0.9999991109044505944;
4242  rnpb[1][2] = -0.4097782710401555759e-4;
4243 
4244  rnpb[2][0] = 0.5791308472168153320e-3;
4245  rnpb[2][1] = 0.4020595661593994396e-4;
4246  rnpb[2][2] = 0.9999998314954572365;
4247 
4248  theta = eraGst06(2400000.5, 53736.0, 2400000.5, 53736.0, rnpb);
4249 
4250  vvd(theta, 1.754166138018167568, 1e-12, "eraGst06", "", status);
4251 
4252 }
4253 
4254 static void t_gst06a(int *status)
4255 /*
4256 ** - - - - - - - - -
4257 ** t _ g s t 0 6 a
4258 ** - - - - - - - - -
4259 **
4260 ** Test eraGst06a function.
4261 **
4262 ** Returned:
4263 ** status int FALSE = success, TRUE = fail
4264 **
4265 ** Called: eraGst06a, vvd
4266 **
4267 ** This revision: 2013 August 7
4268 */
4269 {
4270  double theta;
4271 
4272 
4273  theta = eraGst06a(2400000.5, 53736.0, 2400000.5, 53736.0);
4274 
4275  vvd(theta, 1.754166137675019159, 1e-12, "eraGst06a", "", status);
4276 
4277 }
4278 
4279 static void t_gst94(int *status)
4280 /*
4281 ** - - - - - - - -
4282 ** t _ g s t 9 4
4283 ** - - - - - - - -
4284 **
4285 ** Test eraGst94 function.
4286 **
4287 ** Returned:
4288 ** status int FALSE = success, TRUE = fail
4289 **
4290 ** Called: eraGst94, vvd
4291 **
4292 ** This revision: 2013 August 7
4293 */
4294 {
4295  double theta;
4296 
4297 
4298  theta = eraGst94(2400000.5, 53736.0);
4299 
4300  vvd(theta, 1.754166136020645203, 1e-12, "eraGst94", "", status);
4301 
4302 }
4303 
4304 static void t_icrs2g(int *status)
4305 /*
4306 ** - - - - - - - - -
4307 ** t _ i c r s 2 g
4308 ** - - - - - - - - -
4309 **
4310 ** Test eraIcrs2g function.
4311 **
4312 ** Returned:
4313 ** status int FALSE = success, TRUE = fail
4314 **
4315 ** Called: eraIcrs2g, vvd
4316 **
4317 ** This revision: 2015 January 30
4318 */
4319 {
4320  double dr, dd, dl, db;
4321 
4322  dr = 5.9338074302227188048671087;
4323  dd = -1.1784870613579944551540570;
4324  eraIcrs2g (dr, dd, &dl, &db);
4325  vvd(dl, 5.5850536063818546461558, 1e-14, "eraIcrs2g", "L", status);
4326  vvd(db, -0.7853981633974483096157, 1e-14, "eraIcrs2g", "B", status);
4327  }
4328 
4329 static void t_h2fk5(int *status)
4330 /*
4331 ** - - - - - - - -
4332 ** t _ h 2 f k 5
4333 ** - - - - - - - -
4334 **
4335 ** Test eraH2fk5 function.
4336 **
4337 ** Returned:
4338 ** status int FALSE = success, TRUE = fail
4339 **
4340 ** Called: eraH2fk5, vvd
4341 **
4342 ** This revision: 2013 August 7
4343 */
4344 {
4345  double rh, dh, drh, ddh, pxh, rvh, r5, d5, dr5, dd5, px5, rv5;
4346 
4347 
4348  rh = 1.767794352;
4349  dh = -0.2917512594;
4350  drh = -2.76413026e-6;
4351  ddh = -5.92994449e-6;
4352  pxh = 0.379210;
4353  rvh = -7.6;
4354 
4355  eraH2fk5(rh, dh, drh, ddh, pxh, rvh,
4356  &r5, &d5, &dr5, &dd5, &px5, &rv5);
4357 
4358  vvd(r5, 1.767794455700065506, 1e-13,
4359  "eraH2fk5", "ra", status);
4360  vvd(d5, -0.2917513626469638890, 1e-13,
4361  "eraH2fk5", "dec", status);
4362  vvd(dr5, -0.27597945024511204e-5, 1e-18,
4363  "eraH2fk5", "dr5", status);
4364  vvd(dd5, -0.59308014093262838e-5, 1e-18,
4365  "eraH2fk5", "dd5", status);
4366  vvd(px5, 0.37921, 1e-13,
4367  "eraH2fk5", "px", status);
4368  vvd(rv5, -7.6000001309071126, 1e-10,
4369  "eraH2fk5", "rv", status);
4370 
4371 }
4372 
4373 static void t_hfk5z(int *status)
4374 /*
4375 ** - - - - - - - -
4376 ** t _ h f k 5 z
4377 ** - - - - - - - -
4378 **
4379 ** Test eraHfk5z function.
4380 **
4381 ** Returned:
4382 ** status int FALSE = success, TRUE = fail
4383 **
4384 ** Called: eraHfk5z, vvd
4385 **
4386 ** This revision: 2013 August 7
4387 */
4388 {
4389  double rh, dh, r5, d5, dr5, dd5;
4390 
4391 
4392 
4393  rh = 1.767794352;
4394  dh = -0.2917512594;
4395 
4396  eraHfk5z(rh, dh, 2400000.5, 54479.0, &r5, &d5, &dr5, &dd5);
4397 
4398  vvd(r5, 1.767794490535581026, 1e-13,
4399  "eraHfk5z", "ra", status);
4400  vvd(d5, -0.2917513695320114258, 1e-14,
4401  "eraHfk5z", "dec", status);
4402  vvd(dr5, 0.4335890983539243029e-8, 1e-22,
4403  "eraHfk5z", "dr5", status);
4404  vvd(dd5, -0.8569648841237745902e-9, 1e-23,
4405  "eraHfk5z", "dd5", status);
4406 
4407 }
4408 
4409 static void t_ir(int *status)
4410 /*
4411 ** - - - - -
4412 ** t _ i r
4413 ** - - - - -
4414 **
4415 ** Test eraIr function.
4416 **
4417 ** Returned:
4418 ** status int FALSE = success, TRUE = fail
4419 **
4420 ** Called: eraIr, vvd
4421 **
4422 ** This revision: 2013 August 7
4423 */
4424 {
4425  double r[3][3];
4426 
4427 
4428  r[0][0] = 2.0;
4429  r[0][1] = 3.0;
4430  r[0][2] = 2.0;
4431 
4432  r[1][0] = 3.0;
4433  r[1][1] = 2.0;
4434  r[1][2] = 3.0;
4435 
4436  r[2][0] = 3.0;
4437  r[2][1] = 4.0;
4438  r[2][2] = 5.0;
4439 
4440  eraIr(r);
4441 
4442  vvd(r[0][0], 1.0, 0.0, "eraIr", "11", status);
4443  vvd(r[0][1], 0.0, 0.0, "eraIr", "12", status);
4444  vvd(r[0][2], 0.0, 0.0, "eraIr", "13", status);
4445 
4446  vvd(r[1][0], 0.0, 0.0, "eraIr", "21", status);
4447  vvd(r[1][1], 1.0, 0.0, "eraIr", "22", status);
4448  vvd(r[1][2], 0.0, 0.0, "eraIr", "23", status);
4449 
4450  vvd(r[2][0], 0.0, 0.0, "eraIr", "31", status);
4451  vvd(r[2][1], 0.0, 0.0, "eraIr", "32", status);
4452  vvd(r[2][2], 1.0, 0.0, "eraIr", "33", status);
4453 
4454 }
4455 
4456 static void t_jd2cal(int *status)
4457 /*
4458 ** - - - - - - - - -
4459 ** t _ j d 2 c a l
4460 ** - - - - - - - - -
4461 **
4462 ** Test eraJd2cal function.
4463 **
4464 ** Returned:
4465 ** status int FALSE = success, TRUE = fail
4466 **
4467 ** Called: eraJd2cal, viv, vvd
4468 **
4469 ** This revision: 2013 August 7
4470 */
4471 {
4472  double dj1, dj2, fd;
4473  int iy, im, id, j;
4474 
4475 
4476  dj1 = 2400000.5;
4477  dj2 = 50123.9999;
4478 
4479  j = eraJd2cal(dj1, dj2, &iy, &im, &id, &fd);
4480 
4481  viv(iy, 1996, "eraJd2cal", "y", status);
4482  viv(im, 2, "eraJd2cal", "m", status);
4483  viv(id, 10, "eraJd2cal", "d", status);
4484  vvd(fd, 0.9999, 1e-7, "eraJd2cal", "fd", status);
4485  viv(j, 0, "eraJd2cal", "j", status);
4486 
4487 }
4488 
4489 static void t_jdcalf(int *status)
4490 /*
4491 ** - - - - - - - - -
4492 ** t _ j d c a l f
4493 ** - - - - - - - - -
4494 **
4495 ** Test eraJdcalf function.
4496 **
4497 ** Returned:
4498 ** status int FALSE = success, TRUE = fail
4499 **
4500 ** Called: eraJdcalf, viv
4501 **
4502 ** This revision: 2013 August 7
4503 */
4504 {
4505  double dj1, dj2;
4506  int iydmf[4], j;
4507 
4508 
4509  dj1 = 2400000.5;
4510  dj2 = 50123.9999;
4511 
4512  j = eraJdcalf(4, dj1, dj2, iydmf);
4513 
4514  viv(iydmf[0], 1996, "eraJdcalf", "y", status);
4515  viv(iydmf[1], 2, "eraJdcalf", "m", status);
4516  viv(iydmf[2], 10, "eraJdcalf", "d", status);
4517  viv(iydmf[3], 9999, "eraJdcalf", "f", status);
4518 
4519  viv(j, 0, "eraJdcalf", "j", status);
4520 
4521 }
4522 
4523 static void t_ld(int *status)
4524 /*
4525 ** - - - - -
4526 ** t _ l d
4527 ** - - - - -
4528 **
4529 ** Test eraLd function.
4530 **
4531 ** Returned:
4532 ** status int FALSE = success, TRUE = fail
4533 **
4534 ** Called: eraLd, vvd
4535 *
4536 ** This revision: 2013 October 2
4537 */
4538 {
4539  double bm, p[3], q[3], e[3], em, dlim, p1[3];
4540 
4541 
4542  bm = 0.00028574;
4543  p[0] = -0.763276255;
4544  p[1] = -0.608633767;
4545  p[2] = -0.216735543;
4546  q[0] = -0.763276255;
4547  q[1] = -0.608633767;
4548  q[2] = -0.216735543;
4549  e[0] = 0.76700421;
4550  e[1] = 0.605629598;
4551  e[2] = 0.211937094;
4552  em = 8.91276983;
4553  dlim = 3e-10;
4554 
4555  eraLd(bm, p, q, e, em, dlim, p1);
4556 
4557  vvd(p1[0], -0.7632762548968159627, 1e-12,
4558  "eraLd", "1", status);
4559  vvd(p1[1], -0.6086337670823762701, 1e-12,
4560  "eraLd", "2", status);
4561  vvd(p1[2], -0.2167355431320546947, 1e-12,
4562  "eraLd", "3", status);
4563 
4564 }
4565 
4566 static void t_ldn(int *status)
4567 /*
4568 ** - - - - - -
4569 ** t _ l d n
4570 ** - - - - - -
4571 **
4572 ** Test eraLdn function.
4573 **
4574 ** Returned:
4575 ** status int FALSE = success, TRUE = fail
4576 **
4577 ** Called: eraLdn, vvd
4578 **
4579 ** This revision: 2013 October 2
4580 */
4581 {
4582  int n;
4583  eraLDBODY b[3];
4584  double ob[3], sc[3], sn[3];
4585 
4586 
4587  n = 3;
4588  b[0].bm = 0.00028574;
4589  b[0].dl = 3e-10;
4590  b[0].pv[0][0] = -7.81014427;
4591  b[0].pv[0][1] = -5.60956681;
4592  b[0].pv[0][2] = -1.98079819;
4593  b[0].pv[1][0] = 0.0030723249;
4594  b[0].pv[1][1] = -0.00406995477;
4595  b[0].pv[1][2] = -0.00181335842;
4596  b[1].bm = 0.00095435;
4597  b[1].dl = 3e-9;
4598  b[1].pv[0][0] = 0.738098796;
4599  b[1].pv[0][1] = 4.63658692;
4600  b[1].pv[0][2] = 1.9693136;
4601  b[1].pv[1][0] = -0.00755816922;
4602  b[1].pv[1][1] = 0.00126913722;
4603  b[1].pv[1][2] = 0.000727999001;
4604  b[2].bm = 1.0;
4605  b[2].dl = 6e-6;
4606  b[2].pv[0][0] = -0.000712174377;
4607  b[2].pv[0][1] = -0.00230478303;
4608  b[2].pv[0][2] = -0.00105865966;
4609  b[2].pv[1][0] = 6.29235213e-6;
4610  b[2].pv[1][1] = -3.30888387e-7;
4611  b[2].pv[1][2] = -2.96486623e-7;
4612  ob[0] = -0.974170437;
4613  ob[1] = -0.2115201;
4614  ob[2] = -0.0917583114;
4615  sc[0] = -0.763276255;
4616  sc[1] = -0.608633767;
4617  sc[2] = -0.216735543;
4618 
4619  eraLdn(n, b, ob, sc, sn);
4620 
4621  vvd(sn[0], -0.7632762579693333866, 1e-12,
4622  "eraLdn", "1", status);
4623  vvd(sn[1], -0.6086337636093002660, 1e-12,
4624  "eraLdn", "2", status);
4625  vvd(sn[2], -0.2167355420646328159, 1e-12,
4626  "eraLdn", "3", status);
4627 
4628 }
4629 
4630 static void t_ldsun(int *status)
4631 /*
4632 ** - - - - - - - -
4633 ** t _ l d s u n
4634 ** - - - - - - - -
4635 **
4636 ** Test eraLdsun function.
4637 **
4638 ** Returned:
4639 ** status int FALSE = success, TRUE = fail
4640 **
4641 ** Called: eraLdsun, vvd
4642 **
4643 ** This revision: 2013 October 2
4644 */
4645 {
4646  double p[3], e[3], em, p1[3];
4647 
4648 
4649  p[0] = -0.763276255;
4650  p[1] = -0.608633767;
4651  p[2] = -0.216735543;
4652  e[0] = -0.973644023;
4653  e[1] = -0.20925523;
4654  e[2] = -0.0907169552;
4655  em = 0.999809214;
4656 
4657  eraLdsun(p, e, em, p1);
4658 
4659  vvd(p1[0], -0.7632762580731413169, 1e-12,
4660  "eraLdsun", "1", status);
4661  vvd(p1[1], -0.6086337635262647900, 1e-12,
4662  "eraLdsun", "2", status);
4663  vvd(p1[2], -0.2167355419322321302, 1e-12,
4664  "eraLdsun", "3", status);
4665 
4666 }
4667 
4668 static void t_num00a(int *status)
4669 /*
4670 ** - - - - - - - - -
4671 ** t _ n u m 0 0 a
4672 ** - - - - - - - - -
4673 **
4674 ** Test eraNum00a function.
4675 **
4676 ** Returned:
4677 ** status int FALSE = success, TRUE = fail
4678 **
4679 ** Called: eraNum00a, vvd
4680 **
4681 ** This revision: 2013 August 7
4682 */
4683 {
4684  double rmatn[3][3];
4685 
4686 
4687  eraNum00a(2400000.5, 53736.0, rmatn);
4688 
4689  vvd(rmatn[0][0], 0.9999999999536227949, 1e-12,
4690  "eraNum00a", "11", status);
4691  vvd(rmatn[0][1], 0.8836238544090873336e-5, 1e-12,
4692  "eraNum00a", "12", status);
4693  vvd(rmatn[0][2], 0.3830835237722400669e-5, 1e-12,
4694  "eraNum00a", "13", status);
4695 
4696  vvd(rmatn[1][0], -0.8836082880798569274e-5, 1e-12,
4697  "eraNum00a", "21", status);
4698  vvd(rmatn[1][1], 0.9999999991354655028, 1e-12,
4699  "eraNum00a", "22", status);
4700  vvd(rmatn[1][2], -0.4063240865362499850e-4, 1e-12,
4701  "eraNum00a", "23", status);
4702 
4703  vvd(rmatn[2][0], -0.3831194272065995866e-5, 1e-12,
4704  "eraNum00a", "31", status);
4705  vvd(rmatn[2][1], 0.4063237480216291775e-4, 1e-12,
4706  "eraNum00a", "32", status);
4707  vvd(rmatn[2][2], 0.9999999991671660338, 1e-12,
4708  "eraNum00a", "33", status);
4709 
4710 }
4711 
4712 static void t_num00b(int *status)
4713 /*
4714 ** - - - - - - - - -
4715 ** t _ n u m 0 0 b
4716 ** - - - - - - - - -
4717 **
4718 ** Test eraNum00b function.
4719 **
4720 ** Returned:
4721 ** status int FALSE = success, TRUE = fail
4722 **
4723 ** Called: eraNum00b, vvd
4724 **
4725 ** This revision: 2013 August 7
4726 */
4727 {
4728  double rmatn[3][3];
4729 
4730  eraNum00b(2400000.5, 53736, rmatn);
4731 
4732  vvd(rmatn[0][0], 0.9999999999536069682, 1e-12,
4733  "eraNum00b", "11", status);
4734  vvd(rmatn[0][1], 0.8837746144871248011e-5, 1e-12,
4735  "eraNum00b", "12", status);
4736  vvd(rmatn[0][2], 0.3831488838252202945e-5, 1e-12,
4737  "eraNum00b", "13", status);
4738 
4739  vvd(rmatn[1][0], -0.8837590456632304720e-5, 1e-12,
4740  "eraNum00b", "21", status);
4741  vvd(rmatn[1][1], 0.9999999991354692733, 1e-12,
4742  "eraNum00b", "22", status);
4743  vvd(rmatn[1][2], -0.4063198798559591654e-4, 1e-12,
4744  "eraNum00b", "23", status);
4745 
4746  vvd(rmatn[2][0], -0.3831847930134941271e-5, 1e-12,
4747  "eraNum00b", "31", status);
4748  vvd(rmatn[2][1], 0.4063195412258168380e-4, 1e-12,
4749  "eraNum00b", "32", status);
4750  vvd(rmatn[2][2], 0.9999999991671806225, 1e-12,
4751  "eraNum00b", "33", status);
4752 
4753 }
4754 
4755 static void t_num06a(int *status)
4756 /*
4757 ** - - - - - - - - -
4758 ** t _ n u m 0 6 a
4759 ** - - - - - - - - -
4760 **
4761 ** Test eraNum06a function.
4762 **
4763 ** Returned:
4764 ** status int FALSE = success, TRUE = fail
4765 **
4766 ** Called: eraNum06a, vvd
4767 **
4768 ** This revision: 2013 August 7
4769 */
4770 {
4771  double rmatn[3][3];
4772 
4773  eraNum06a(2400000.5, 53736, rmatn);
4774 
4775  vvd(rmatn[0][0], 0.9999999999536227668, 1e-12,
4776  "eraNum06a", "11", status);
4777  vvd(rmatn[0][1], 0.8836241998111535233e-5, 1e-12,
4778  "eraNum06a", "12", status);
4779  vvd(rmatn[0][2], 0.3830834608415287707e-5, 1e-12,
4780  "eraNum06a", "13", status);
4781 
4782  vvd(rmatn[1][0], -0.8836086334870740138e-5, 1e-12,
4783  "eraNum06a", "21", status);
4784  vvd(rmatn[1][1], 0.9999999991354657474, 1e-12,
4785  "eraNum06a", "22", status);
4786  vvd(rmatn[1][2], -0.4063240188248455065e-4, 1e-12,
4787  "eraNum06a", "23", status);
4788 
4789  vvd(rmatn[2][0], -0.3831193642839398128e-5, 1e-12,
4790  "eraNum06a", "31", status);
4791  vvd(rmatn[2][1], 0.4063236803101479770e-4, 1e-12,
4792  "eraNum06a", "32", status);
4793  vvd(rmatn[2][2], 0.9999999991671663114, 1e-12,
4794  "eraNum06a", "33", status);
4795 
4796 }
4797 
4798 static void t_numat(int *status)
4799 /*
4800 ** - - - - - - - -
4801 ** t _ n u m a t
4802 ** - - - - - - - -
4803 **
4804 ** Test eraNumat function.
4805 **
4806 ** Returned:
4807 ** status int FALSE = success, TRUE = fail
4808 **
4809 ** Called: eraNumat, vvd
4810 **
4811 ** This revision: 2013 August 7
4812 */
4813 {
4814  double epsa, dpsi, deps, rmatn[3][3];
4815 
4816 
4817  epsa = 0.4090789763356509900;
4818  dpsi = -0.9630909107115582393e-5;
4819  deps = 0.4063239174001678826e-4;
4820 
4821  eraNumat(epsa, dpsi, deps, rmatn);
4822 
4823  vvd(rmatn[0][0], 0.9999999999536227949, 1e-12,
4824  "eraNumat", "11", status);
4825  vvd(rmatn[0][1], 0.8836239320236250577e-5, 1e-12,
4826  "eraNumat", "12", status);
4827  vvd(rmatn[0][2], 0.3830833447458251908e-5, 1e-12,
4828  "eraNumat", "13", status);
4829 
4830  vvd(rmatn[1][0], -0.8836083657016688588e-5, 1e-12,
4831  "eraNumat", "21", status);
4832  vvd(rmatn[1][1], 0.9999999991354654959, 1e-12,
4833  "eraNumat", "22", status);
4834  vvd(rmatn[1][2], -0.4063240865361857698e-4, 1e-12,
4835  "eraNumat", "23", status);
4836 
4837  vvd(rmatn[2][0], -0.3831192481833385226e-5, 1e-12,
4838  "eraNumat", "31", status);
4839  vvd(rmatn[2][1], 0.4063237480216934159e-4, 1e-12,
4840  "eraNumat", "32", status);
4841  vvd(rmatn[2][2], 0.9999999991671660407, 1e-12,
4842  "eraNumat", "33", status);
4843 
4844 }
4845 
4846 static void t_nut00a(int *status)
4847 /*
4848 ** - - - - - - - - -
4849 ** t _ n u t 0 0 a
4850 ** - - - - - - - - -
4851 **
4852 ** Test eraNut00a function.
4853 **
4854 ** Returned:
4855 ** status int FALSE = success, TRUE = fail
4856 **
4857 ** Called: eraNut00a, vvd
4858 **
4859 ** This revision: 2013 August 7
4860 */
4861 {
4862  double dpsi, deps;
4863 
4864 
4865  eraNut00a(2400000.5, 53736.0, &dpsi, &deps);
4866 
4867  vvd(dpsi, -0.9630909107115518431e-5, 1e-13,
4868  "eraNut00a", "dpsi", status);
4869  vvd(deps, 0.4063239174001678710e-4, 1e-13,
4870  "eraNut00a", "deps", status);
4871 
4872 }
4873 
4874 static void t_nut00b(int *status)
4875 /*
4876 ** - - - - - - - - -
4877 ** t _ n u t 0 0 b
4878 ** - - - - - - - - -
4879 **
4880 ** Test eraNut00b function.
4881 **
4882 ** Returned:
4883 ** status int FALSE = success, TRUE = fail
4884 **
4885 ** Called: eraNut00b, vvd
4886 **
4887 ** This revision: 2013 August 7
4888 */
4889 {
4890  double dpsi, deps;
4891 
4892 
4893  eraNut00b(2400000.5, 53736.0, &dpsi, &deps);
4894 
4895  vvd(dpsi, -0.9632552291148362783e-5, 1e-13,
4896  "eraNut00b", "dpsi", status);
4897  vvd(deps, 0.4063197106621159367e-4, 1e-13,
4898  "eraNut00b", "deps", status);
4899 
4900 }
4901 
4902 static void t_nut06a(int *status)
4903 /*
4904 ** - - - - - - - - -
4905 ** t _ n u t 0 6 a
4906 ** - - - - - - - - -
4907 **
4908 ** Test eraNut06a function.
4909 **
4910 ** Returned:
4911 ** status int FALSE = success, TRUE = fail
4912 **
4913 ** Called: eraNut06a, vvd
4914 **
4915 ** This revision: 2013 August 7
4916 */
4917 {
4918  double dpsi, deps;
4919 
4920 
4921  eraNut06a(2400000.5, 53736.0, &dpsi, &deps);
4922 
4923  vvd(dpsi, -0.9630912025820308797e-5, 1e-13,
4924  "eraNut06a", "dpsi", status);
4925  vvd(deps, 0.4063238496887249798e-4, 1e-13,
4926  "eraNut06a", "deps", status);
4927 
4928 }
4929 
4930 static void t_nut80(int *status)
4931 /*
4932 ** - - - - - - - -
4933 ** t _ n u t 8 0
4934 ** - - - - - - - -
4935 **
4936 ** Test eraNut80 function.
4937 **
4938 ** Returned:
4939 ** status int FALSE = success, TRUE = fail
4940 **
4941 ** Called: eraNut80, vvd
4942 **
4943 ** This revision: 2013 August 7
4944 */
4945 {
4946  double dpsi, deps;
4947 
4948 
4949  eraNut80(2400000.5, 53736.0, &dpsi, &deps);
4950 
4951  vvd(dpsi, -0.9643658353226563966e-5, 1e-13,
4952  "eraNut80", "dpsi", status);
4953  vvd(deps, 0.4060051006879713322e-4, 1e-13,
4954  "eraNut80", "deps", status);
4955 
4956 }
4957 
4958 static void t_nutm80(int *status)
4959 /*
4960 ** - - - - - - - - -
4961 ** t _ n u t m 8 0
4962 ** - - - - - - - - -
4963 **
4964 ** Test eraNutm80 function.
4965 **
4966 ** Returned:
4967 ** status int FALSE = success, TRUE = fail
4968 **
4969 ** Called: eraNutm80, vvd
4970 **
4971 ** This revision: 2013 August 7
4972 */
4973 {
4974  double rmatn[3][3];
4975 
4976 
4977  eraNutm80(2400000.5, 53736.0, rmatn);
4978 
4979  vvd(rmatn[0][0], 0.9999999999534999268, 1e-12,
4980  "eraNutm80", "11", status);
4981  vvd(rmatn[0][1], 0.8847935789636432161e-5, 1e-12,
4982  "eraNutm80", "12", status);
4983  vvd(rmatn[0][2], 0.3835906502164019142e-5, 1e-12,
4984  "eraNutm80", "13", status);
4985 
4986  vvd(rmatn[1][0], -0.8847780042583435924e-5, 1e-12,
4987  "eraNutm80", "21", status);
4988  vvd(rmatn[1][1], 0.9999999991366569963, 1e-12,
4989  "eraNutm80", "22", status);
4990  vvd(rmatn[1][2], -0.4060052702727130809e-4, 1e-12,
4991  "eraNutm80", "23", status);
4992 
4993  vvd(rmatn[2][0], -0.3836265729708478796e-5, 1e-12,
4994  "eraNutm80", "31", status);
4995  vvd(rmatn[2][1], 0.4060049308612638555e-4, 1e-12,
4996  "eraNutm80", "32", status);
4997  vvd(rmatn[2][2], 0.9999999991684415129, 1e-12,
4998  "eraNutm80", "33", status);
4999 
5000 }
5001 
5002 static void t_obl06(int *status)
5003 /*
5004 ** - - - - - - - -
5005 ** t _ o b l 0 6
5006 ** - - - - - - - -
5007 **
5008 ** Test eraObl06 function.
5009 **
5010 ** Returned:
5011 ** status int FALSE = success, TRUE = fail
5012 **
5013 ** Called: eraObl06, vvd
5014 **
5015 ** This revision: 2013 August 7
5016 */
5017 {
5018  vvd(eraObl06(2400000.5, 54388.0), 0.4090749229387258204, 1e-14,
5019  "eraObl06", "", status);
5020 }
5021 
5022 static void t_obl80(int *status)
5023 /*
5024 ** - - - - - - - -
5025 ** t _ o b l 8 0
5026 ** - - - - - - - -
5027 **
5028 ** Test eraObl80 function.
5029 **
5030 ** Returned:
5031 ** status int FALSE = success, TRUE = fail
5032 **
5033 ** Called: eraObl80, vvd
5034 **
5035 ** This revision: 2013 August 7
5036 */
5037 {
5038  double eps0;
5039 
5040 
5041  eps0 = eraObl80(2400000.5, 54388.0);
5042 
5043  vvd(eps0, 0.4090751347643816218, 1e-14, "eraObl80", "", status);
5044 
5045 }
5046 
5047 static void t_p06e(int *status)
5048 /*
5049 ** - - - - - - -
5050 ** t _ p 0 6 e
5051 ** - - - - - - -
5052 **
5053 ** Test eraP06e function.
5054 **
5055 ** Returned:
5056 ** status int FALSE = success, TRUE = fail
5057 **
5058 ** Called: eraP06e, vvd
5059 **
5060 ** This revision: 2013 August 7
5061 */
5062 {
5063  double eps0, psia, oma, bpa, bqa, pia, bpia,
5064  epsa, chia, za, zetaa, thetaa, pa, gam, phi, psi;
5065 
5066 
5067  eraP06e(2400000.5, 52541.0, &eps0, &psia, &oma, &bpa,
5068  &bqa, &pia, &bpia, &epsa, &chia, &za,
5069  &zetaa, &thetaa, &pa, &gam, &phi, &psi);
5070 
5071  vvd(eps0, 0.4090926006005828715, 1e-14,
5072  "eraP06e", "eps0", status);
5073  vvd(psia, 0.6664369630191613431e-3, 1e-14,
5074  "eraP06e", "psia", status);
5075  vvd(oma , 0.4090925973783255982, 1e-14,
5076  "eraP06e", "oma", status);
5077  vvd(bpa, 0.5561149371265209445e-6, 1e-14,
5078  "eraP06e", "bpa", status);
5079  vvd(bqa, -0.6191517193290621270e-5, 1e-14,
5080  "eraP06e", "bqa", status);
5081  vvd(pia, 0.6216441751884382923e-5, 1e-14,
5082  "eraP06e", "pia", status);
5083  vvd(bpia, 3.052014180023779882, 1e-14,
5084  "eraP06e", "bpia", status);
5085  vvd(epsa, 0.4090864054922431688, 1e-14,
5086  "eraP06e", "epsa", status);
5087  vvd(chia, 0.1387703379530915364e-5, 1e-14,
5088  "eraP06e", "chia", status);
5089  vvd(za, 0.2921789846651790546e-3, 1e-14,
5090  "eraP06e", "za", status);
5091  vvd(zetaa, 0.3178773290332009310e-3, 1e-14,
5092  "eraP06e", "zetaa", status);
5093  vvd(thetaa, 0.2650932701657497181e-3, 1e-14,
5094  "eraP06e", "thetaa", status);
5095  vvd(pa, 0.6651637681381016344e-3, 1e-14,
5096  "eraP06e", "pa", status);
5097  vvd(gam, 0.1398077115963754987e-5, 1e-14,
5098  "eraP06e", "gam", status);
5099  vvd(phi, 0.4090864090837462602, 1e-14,
5100  "eraP06e", "phi", status);
5101  vvd(psi, 0.6664464807480920325e-3, 1e-14,
5102  "eraP06e", "psi", status);
5103 
5104 }
5105 
5106 static void t_p2pv(int *status)
5107 /*
5108 ** - - - - - - -
5109 ** t _ p 2 p v
5110 ** - - - - - - -
5111 **
5112 ** Test eraP2pv function.
5113 **
5114 ** Returned:
5115 ** status int FALSE = success, TRUE = fail
5116 **
5117 ** Called: eraP2pv, vvd
5118 **
5119 ** This revision: 2013 August 7
5120 */
5121 {
5122  double p[3], pv[2][3];
5123 
5124 
5125  p[0] = 0.25;
5126  p[1] = 1.2;
5127  p[2] = 3.0;
5128 
5129  pv[0][0] = 0.3;
5130  pv[0][1] = 1.2;
5131  pv[0][2] = -2.5;
5132 
5133  pv[1][0] = -0.5;
5134  pv[1][1] = 3.1;
5135  pv[1][2] = 0.9;
5136 
5137  eraP2pv(p, pv);
5138 
5139  vvd(pv[0][0], 0.25, 0.0, "eraP2pv", "p1", status);
5140  vvd(pv[0][1], 1.2, 0.0, "eraP2pv", "p2", status);
5141  vvd(pv[0][2], 3.0, 0.0, "eraP2pv", "p3", status);
5142 
5143  vvd(pv[1][0], 0.0, 0.0, "eraP2pv", "v1", status);
5144  vvd(pv[1][1], 0.0, 0.0, "eraP2pv", "v2", status);
5145  vvd(pv[1][2], 0.0, 0.0, "eraP2pv", "v3", status);
5146 
5147 }
5148 
5149 static void t_p2s(int *status)
5150 /*
5151 ** - - - - - -
5152 ** t _ p 2 s
5153 ** - - - - - -
5154 **
5155 ** Test eraP2s function.
5156 **
5157 ** Returned:
5158 ** status int FALSE = success, TRUE = fail
5159 **
5160 ** Called: eraP2s, vvd
5161 **
5162 ** This revision: 2013 August 7
5163 */
5164 {
5165  double p[3], theta, phi, r;
5166 
5167 
5168  p[0] = 100.0;
5169  p[1] = -50.0;
5170  p[2] = 25.0;
5171 
5172  eraP2s(p, &theta, &phi, &r);
5173 
5174  vvd(theta, -0.4636476090008061162, 1e-12, "eraP2s", "theta", status);
5175  vvd(phi, 0.2199879773954594463, 1e-12, "eraP2s", "phi", status);
5176  vvd(r, 114.5643923738960002, 1e-9, "eraP2s", "r", status);
5177 
5178 }
5179 
5180 static void t_pap(int *status)
5181 /*
5182 ** - - - - - -
5183 ** t _ p a p
5184 ** - - - - - -
5185 **
5186 ** Test eraPap function.
5187 **
5188 ** Returned:
5189 ** status int FALSE = success, TRUE = fail
5190 **
5191 ** Called: eraPap, vvd
5192 **
5193 ** This revision: 2013 August 7
5194 */
5195 {
5196  double a[3], b[3], theta;
5197 
5198 
5199  a[0] = 1.0;
5200  a[1] = 0.1;
5201  a[2] = 0.2;
5202 
5203  b[0] = -3.0;
5204  b[1] = 1e-3;
5205  b[2] = 0.2;
5206 
5207  theta = eraPap(a, b);
5208 
5209  vvd(theta, 0.3671514267841113674, 1e-12, "eraPap", "", status);
5210 
5211 }
5212 
5213 static void t_pas(int *status)
5214 /*
5215 ** - - - - - -
5216 ** t _ p a s
5217 ** - - - - - -
5218 **
5219 ** Test eraPas function.
5220 **
5221 ** Returned:
5222 ** status int FALSE = success, TRUE = fail
5223 **
5224 ** Called: eraPas, vvd
5225 **
5226 ** This revision: 2013 August 7
5227 */
5228 {
5229  double al, ap, bl, bp, theta;
5230 
5231 
5232  al = 1.0;
5233  ap = 0.1;
5234  bl = 0.2;
5235  bp = -1.0;
5236 
5237  theta = eraPas(al, ap, bl, bp);
5238 
5239  vvd(theta, -2.724544922932270424, 1e-12, "eraPas", "", status);
5240 
5241 }
5242 
5243 static void t_pb06(int *status)
5244 /*
5245 ** - - - - - - -
5246 ** t _ p b 0 6
5247 ** - - - - - - -
5248 **
5249 ** Test eraPb06 function.
5250 **
5251 ** Returned:
5252 ** status int FALSE = success, TRUE = fail
5253 **
5254 ** Called: eraPb06, vvd
5255 **
5256 ** This revision: 2013 August 7
5257 */
5258 {
5259  double bzeta, bz, btheta;
5260 
5261 
5262  eraPb06(2400000.5, 50123.9999, &bzeta, &bz, &btheta);
5263 
5264  vvd(bzeta, -0.5092634016326478238e-3, 1e-12,
5265  "eraPb06", "bzeta", status);
5266  vvd(bz, -0.3602772060566044413e-3, 1e-12,
5267  "eraPb06", "bz", status);
5268  vvd(btheta, -0.3779735537167811177e-3, 1e-12,
5269  "eraPb06", "btheta", status);
5270 
5271 }
5272 
5273 static void t_pdp(int *status)
5274 /*
5275 ** - - - - - -
5276 ** t _ p d p
5277 ** - - - - - -
5278 **
5279 ** Test eraPdp function.
5280 **
5281 ** Returned:
5282 ** status int FALSE = success, TRUE = fail
5283 **
5284 ** Called: eraPdp, vvd
5285 **
5286 ** This revision: 2013 August 7
5287 */
5288 {
5289  double a[3], b[3], adb;
5290 
5291 
5292  a[0] = 2.0;
5293  a[1] = 2.0;
5294  a[2] = 3.0;
5295 
5296  b[0] = 1.0;
5297  b[1] = 3.0;
5298  b[2] = 4.0;
5299 
5300  adb = eraPdp(a, b);
5301 
5302  vvd(adb, 20, 1e-12, "eraPdp", "", status);
5303 
5304 }
5305 
5306 static void t_pfw06(int *status)
5307 /*
5308 ** - - - - - - - -
5309 ** t _ p f w 0 6
5310 ** - - - - - - - -
5311 **
5312 ** Test eraPfw06 function.
5313 **
5314 ** Returned:
5315 ** status int FALSE = success, TRUE = fail
5316 **
5317 ** Called: eraPfw06, vvd
5318 **
5319 ** This revision: 2013 August 7
5320 */
5321 {
5322  double gamb, phib, psib, epsa;
5323 
5324 
5325  eraPfw06(2400000.5, 50123.9999, &gamb, &phib, &psib, &epsa);
5326 
5327  vvd(gamb, -0.2243387670997995690e-5, 1e-16,
5328  "eraPfw06", "gamb", status);
5329  vvd(phib, 0.4091014602391312808, 1e-12,
5330  "eraPfw06", "phib", status);
5331  vvd(psib, -0.9501954178013031895e-3, 1e-14,
5332  "eraPfw06", "psib", status);
5333  vvd(epsa, 0.4091014316587367491, 1e-12,
5334  "eraPfw06", "epsa", status);
5335 
5336 }
5337 
5338 static void t_plan94(int *status)
5339 /*
5340 ** - - - - - - - - -
5341 ** t _ p l a n 9 4
5342 ** - - - - - - - - -
5343 **
5344 ** Test eraPlan94 function.
5345 **
5346 ** Returned:
5347 ** status int FALSE = success, TRUE = fail
5348 **
5349 ** Called: eraPlan94, vvd, viv
5350 **
5351 ** This revision: 2013 October 2
5352 */
5353 {
5354  double pv[2][3];
5355  int j;
5356 
5357 
5358  j = eraPlan94(2400000.5, 1e6, 0, pv);
5359 
5360  vvd(pv[0][0], 0.0, 0.0, "eraPlan94", "x 1", status);
5361  vvd(pv[0][1], 0.0, 0.0, "eraPlan94", "y 1", status);
5362  vvd(pv[0][2], 0.0, 0.0, "eraPlan94", "z 1", status);
5363 
5364  vvd(pv[1][0], 0.0, 0.0, "eraPlan94", "xd 1", status);
5365  vvd(pv[1][1], 0.0, 0.0, "eraPlan94", "yd 1", status);
5366  vvd(pv[1][2], 0.0, 0.0, "eraPlan94", "zd 1", status);
5367 
5368  viv(j, -1, "eraPlan94", "j 1", status);
5369 
5370  j = eraPlan94(2400000.5, 1e6, 10, pv);
5371 
5372  viv(j, -1, "eraPlan94", "j 2", status);
5373 
5374  j = eraPlan94(2400000.5, -320000, 3, pv);
5375 
5376  vvd(pv[0][0], 0.9308038666832975759, 1e-11,
5377  "eraPlan94", "x 3", status);
5378  vvd(pv[0][1], 0.3258319040261346000, 1e-11,
5379  "eraPlan94", "y 3", status);
5380  vvd(pv[0][2], 0.1422794544481140560, 1e-11,
5381  "eraPlan94", "z 3", status);
5382 
5383  vvd(pv[1][0], -0.6429458958255170006e-2, 1e-11,
5384  "eraPlan94", "xd 3", status);
5385  vvd(pv[1][1], 0.1468570657704237764e-1, 1e-11,
5386  "eraPlan94", "yd 3", status);
5387  vvd(pv[1][2], 0.6406996426270981189e-2, 1e-11,
5388  "eraPlan94", "zd 3", status);
5389 
5390  viv(j, 1, "eraPlan94", "j 3", status);
5391 
5392  j = eraPlan94(2400000.5, 43999.9, 1, pv);
5393 
5394  vvd(pv[0][0], 0.2945293959257430832, 1e-11,
5395  "eraPlan94", "x 4", status);
5396  vvd(pv[0][1], -0.2452204176601049596, 1e-11,
5397  "eraPlan94", "y 4", status);
5398  vvd(pv[0][2], -0.1615427700571978153, 1e-11,
5399  "eraPlan94", "z 4", status);
5400 
5401  vvd(pv[1][0], 0.1413867871404614441e-1, 1e-11,
5402  "eraPlan94", "xd 4", status);
5403  vvd(pv[1][1], 0.1946548301104706582e-1, 1e-11,
5404  "eraPlan94", "yd 4", status);
5405  vvd(pv[1][2], 0.8929809783898904786e-2, 1e-11,
5406  "eraPlan94", "zd 4", status);
5407 
5408  viv(j, 0, "eraPlan94", "j 4", status);
5409 
5410 }
5411 
5412 static void t_pmat00(int *status)
5413 /*
5414 ** - - - - - - - - -
5415 ** t _ p m a t 0 0
5416 ** - - - - - - - - -
5417 **
5418 ** Test eraPmat00 function.
5419 **
5420 ** Returned:
5421 ** status int FALSE = success, TRUE = fail
5422 **
5423 ** Called: eraPmat00, vvd
5424 **
5425 ** This revision: 2013 August 7
5426 */
5427 {
5428  double rbp[3][3];
5429 
5430 
5431  eraPmat00(2400000.5, 50123.9999, rbp);
5432 
5433  vvd(rbp[0][0], 0.9999995505175087260, 1e-12,
5434  "eraPmat00", "11", status);
5435  vvd(rbp[0][1], 0.8695405883617884705e-3, 1e-14,
5436  "eraPmat00", "12", status);
5437  vvd(rbp[0][2], 0.3779734722239007105e-3, 1e-14,
5438  "eraPmat00", "13", status);
5439 
5440  vvd(rbp[1][0], -0.8695405990410863719e-3, 1e-14,
5441  "eraPmat00", "21", status);
5442  vvd(rbp[1][1], 0.9999996219494925900, 1e-12,
5443  "eraPmat00", "22", status);
5444  vvd(rbp[1][2], -0.1360775820404982209e-6, 1e-14,
5445  "eraPmat00", "23", status);
5446 
5447  vvd(rbp[2][0], -0.3779734476558184991e-3, 1e-14,
5448  "eraPmat00", "31", status);
5449  vvd(rbp[2][1], -0.1925857585832024058e-6, 1e-14,
5450  "eraPmat00", "32", status);
5451  vvd(rbp[2][2], 0.9999999285680153377, 1e-12,
5452  "eraPmat00", "33", status);
5453 
5454 }
5455 
5456 static void t_pmat06(int *status)
5457 /*
5458 ** - - - - - - - - -
5459 ** t _ p m a t 0 6
5460 ** - - - - - - - - -
5461 **
5462 ** Test eraPmat06 function.
5463 **
5464 ** Returned:
5465 ** status int FALSE = success, TRUE = fail
5466 **
5467 ** Called: eraPmat06, vvd
5468 **
5469 ** This revision: 2013 August 7
5470 */
5471 {
5472  double rbp[3][3];
5473 
5474 
5475  eraPmat06(2400000.5, 50123.9999, rbp);
5476 
5477  vvd(rbp[0][0], 0.9999995505176007047, 1e-12,
5478  "eraPmat06", "11", status);
5479  vvd(rbp[0][1], 0.8695404617348208406e-3, 1e-14,
5480  "eraPmat06", "12", status);
5481  vvd(rbp[0][2], 0.3779735201865589104e-3, 1e-14,
5482  "eraPmat06", "13", status);
5483 
5484  vvd(rbp[1][0], -0.8695404723772031414e-3, 1e-14,
5485  "eraPmat06", "21", status);
5486  vvd(rbp[1][1], 0.9999996219496027161, 1e-12,
5487  "eraPmat06", "22", status);
5488  vvd(rbp[1][2], -0.1361752497080270143e-6, 1e-14,
5489  "eraPmat06", "23", status);
5490 
5491  vvd(rbp[2][0], -0.3779734957034089490e-3, 1e-14,
5492  "eraPmat06", "31", status);
5493  vvd(rbp[2][1], -0.1924880847894457113e-6, 1e-14,
5494  "eraPmat06", "32", status);
5495  vvd(rbp[2][2], 0.9999999285679971958, 1e-12,
5496  "eraPmat06", "33", status);
5497 
5498 }
5499 
5500 static void t_pmat76(int *status)
5501 /*
5502 ** - - - - - - - - -
5503 ** t _ p m a t 7 6
5504 ** - - - - - - - - -
5505 **
5506 ** Test eraPmat76 function.
5507 **
5508 ** Returned:
5509 ** status int FALSE = success, TRUE = fail
5510 **
5511 ** Called: eraPmat76, vvd
5512 **
5513 ** This revision: 2013 August 7
5514 */
5515 {
5516  double rmatp[3][3];
5517 
5518 
5519  eraPmat76(2400000.5, 50123.9999, rmatp);
5520 
5521  vvd(rmatp[0][0], 0.9999995504328350733, 1e-12,
5522  "eraPmat76", "11", status);
5523  vvd(rmatp[0][1], 0.8696632209480960785e-3, 1e-14,
5524  "eraPmat76", "12", status);
5525  vvd(rmatp[0][2], 0.3779153474959888345e-3, 1e-14,
5526  "eraPmat76", "13", status);
5527 
5528  vvd(rmatp[1][0], -0.8696632209485112192e-3, 1e-14,
5529  "eraPmat76", "21", status);
5530  vvd(rmatp[1][1], 0.9999996218428560614, 1e-12,
5531  "eraPmat76", "22", status);
5532  vvd(rmatp[1][2], -0.1643284776111886407e-6, 1e-14,
5533  "eraPmat76", "23", status);
5534 
5535  vvd(rmatp[2][0], -0.3779153474950335077e-3, 1e-14,
5536  "eraPmat76", "31", status);
5537  vvd(rmatp[2][1], -0.1643306746147366896e-6, 1e-14,
5538  "eraPmat76", "32", status);
5539  vvd(rmatp[2][2], 0.9999999285899790119, 1e-12,
5540  "eraPmat76", "33", status);
5541 
5542 }
5543 
5544 static void t_pm(int *status)
5545 /*
5546 ** - - - - -
5547 ** t _ p m
5548 ** - - - - -
5549 **
5550 ** Test eraPm function.
5551 **
5552 ** Returned:
5553 ** status int FALSE = success, TRUE = fail
5554 **
5555 ** Called: eraPm, vvd
5556 **
5557 ** This revision: 2013 August 7
5558 */
5559 {
5560  double p[3], r;
5561 
5562 
5563  p[0] = 0.3;
5564  p[1] = 1.2;
5565  p[2] = -2.5;
5566 
5567  r = eraPm(p);
5568 
5569  vvd(r, 2.789265136196270604, 1e-12, "eraPm", "", status);
5570 
5571 }
5572 
5573 static void t_pmp(int *status)
5574 /*
5575 ** - - - - - -
5576 ** t _ p m p
5577 ** - - - - - -
5578 **
5579 ** Test eraPmp function.
5580 **
5581 ** Returned:
5582 ** status int FALSE = success, TRUE = fail
5583 **
5584 ** Called: eraPmp, vvd
5585 **
5586 ** This revision: 2013 August 7
5587 */
5588 {
5589  double a[3], b[3], amb[3];
5590 
5591 
5592  a[0] = 2.0;
5593  a[1] = 2.0;
5594  a[2] = 3.0;
5595 
5596  b[0] = 1.0;
5597  b[1] = 3.0;
5598  b[2] = 4.0;
5599 
5600  eraPmp(a, b, amb);
5601 
5602  vvd(amb[0], 1.0, 1e-12, "eraPmp", "0", status);
5603  vvd(amb[1], -1.0, 1e-12, "eraPmp", "1", status);
5604  vvd(amb[2], -1.0, 1e-12, "eraPmp", "2", status);
5605 
5606 }
5607 
5608 static void t_pmpx(int *status)
5609 /*
5610 ** - - - - - - -
5611 ** t _ p m p x
5612 ** - - - - - - -
5613 **
5614 ** Test eraPmpx function.
5615 **
5616 ** Returned:
5617 ** status int FALSE = success, TRUE = fail
5618 **
5619 ** Called: eraPmpx, vvd
5620 **
5621 ** This revision: 2013 October 2
5622 */
5623 {
5624  double rc, dc, pr, pd, px, rv, pmt, pob[3], pco[3];
5625 
5626 
5627  rc = 1.234;
5628  dc = 0.789;
5629  pr = 1e-5;
5630  pd = -2e-5;
5631  px = 1e-2;
5632  rv = 10.0;
5633  pmt = 8.75;
5634  pob[0] = 0.9;
5635  pob[1] = 0.4;
5636  pob[2] = 0.1;
5637 
5638  eraPmpx(rc, dc, pr, pd, px, rv, pmt, pob, pco);
5639 
5640  vvd(pco[0], 0.2328137623960308440, 1e-12,
5641  "eraPmpx", "1", status);
5642  vvd(pco[1], 0.6651097085397855317, 1e-12,
5643  "eraPmpx", "2", status);
5644  vvd(pco[2], 0.7095257765896359847, 1e-12,
5645  "eraPmpx", "3", status);
5646 
5647 }
5648 
5649 static void t_pmsafe(int *status)
5650 /*
5651 ** - - - - - - - - -
5652 ** t _ p m s a f e
5653 ** - - - - - - - - -
5654 **
5655 ** Test eraPmsafe function.
5656 **
5657 ** Returned:
5658 ** status int FALSE = success, TRUE = fail
5659 **
5660 ** Called: eraPmsafe, vvd, viv
5661 **
5662 ** This revision: 2013 October 2
5663 */
5664 {
5665  int j;
5666  double ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b,
5667  ra2, dec2, pmr2, pmd2, px2, rv2;
5668 
5669 
5670  ra1 = 1.234;
5671  dec1 = 0.789;
5672  pmr1 = 1e-5;
5673  pmd1 = -2e-5;
5674  px1 = 1e-2;
5675  rv1 = 10.0;
5676  ep1a = 2400000.5;
5677  ep1b = 48348.5625;
5678  ep2a = 2400000.5;
5679  ep2b = 51544.5;
5680 
5681  j = eraPmsafe(ra1, dec1, pmr1, pmd1, px1, rv1,
5682  ep1a, ep1b, ep2a, ep2b,
5683  &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2);
5684 
5685  vvd(ra2, 1.234087484501017061, 1e-12,
5686  "eraPmsafe", "ra2", status);
5687  vvd(dec2, 0.7888249982450468574, 1e-12,
5688  "eraPmsafe", "dec2", status);
5689  vvd(pmr2, 0.9996457663586073988e-5, 1e-12,
5690  "eraPmsafe", "pmr2", status);
5691  vvd(pmd2, -0.2000040085106737816e-4, 1e-16,
5692  "eraPmsafe", "pmd2", status);
5693  vvd(px2, 0.9999997295356765185e-2, 1e-12,
5694  "eraPmsafe", "px2", status);
5695  vvd(rv2, 10.38468380113917014, 1e-10,
5696  "eraPmsafe", "rv2", status);
5697  viv ( j, 0, "eraPmsafe", "j", status);
5698 
5699 }
5700 
5701 static void t_pn(int *status)
5702 /*
5703 ** - - - - -
5704 ** t _ p n
5705 ** - - - - -
5706 **
5707 ** Test eraPn function.
5708 **
5709 ** Returned:
5710 ** status int FALSE = success, TRUE = fail
5711 **
5712 ** Called: eraPn, vvd
5713 **
5714 ** This revision: 2013 August 7
5715 */
5716 {
5717  double p[3], r, u[3];
5718 
5719 
5720  p[0] = 0.3;
5721  p[1] = 1.2;
5722  p[2] = -2.5;
5723 
5724  eraPn(p, &r, u);
5725 
5726  vvd(r, 2.789265136196270604, 1e-12, "eraPn", "r", status);
5727 
5728  vvd(u[0], 0.1075552109073112058, 1e-12, "eraPn", "u1", status);
5729  vvd(u[1], 0.4302208436292448232, 1e-12, "eraPn", "u2", status);
5730  vvd(u[2], -0.8962934242275933816, 1e-12, "eraPn", "u3", status);
5731 
5732 }
5733 
5734 static void t_pn00(int *status)
5735 /*
5736 ** - - - - - - -
5737 ** t _ p n 0 0
5738 ** - - - - - - -
5739 **
5740 ** Test eraPn00 function.
5741 **
5742 ** Returned:
5743 ** status int FALSE = success, TRUE = fail
5744 **
5745 ** Called: eraPn00, vvd
5746 **
5747 ** This revision: 2013 August 7
5748 */
5749 {
5750  double dpsi, deps, epsa,
5751  rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3];
5752 
5753 
5754  dpsi = -0.9632552291149335877e-5;
5755  deps = 0.4063197106621141414e-4;
5756 
5757  eraPn00(2400000.5, 53736.0, dpsi, deps,
5758  &epsa, rb, rp, rbp, rn, rbpn);
5759 
5760  vvd(epsa, 0.4090791789404229916, 1e-12, "eraPn00", "epsa", status);
5761 
5762  vvd(rb[0][0], 0.9999999999999942498, 1e-12,
5763  "eraPn00", "rb11", status);
5764  vvd(rb[0][1], -0.7078279744199196626e-7, 1e-18,
5765  "eraPn00", "rb12", status);
5766  vvd(rb[0][2], 0.8056217146976134152e-7, 1e-18,
5767  "eraPn00", "rb13", status);
5768 
5769  vvd(rb[1][0], 0.7078279477857337206e-7, 1e-18,
5770  "eraPn00", "rb21", status);
5771  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
5772  "eraPn00", "rb22", status);
5773  vvd(rb[1][2], 0.3306041454222136517e-7, 1e-18,
5774  "eraPn00", "rb23", status);
5775 
5776  vvd(rb[2][0], -0.8056217380986972157e-7, 1e-18,
5777  "eraPn00", "rb31", status);
5778  vvd(rb[2][1], -0.3306040883980552500e-7, 1e-18,
5779  "eraPn00", "rb32", status);
5780  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
5781  "eraPn00", "rb33", status);
5782 
5783  vvd(rp[0][0], 0.9999989300532289018, 1e-12,
5784  "eraPn00", "rp11", status);
5785  vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14,
5786  "eraPn00", "rp12", status);
5787  vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14,
5788  "eraPn00", "rp13", status);
5789 
5790  vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14,
5791  "eraPn00", "rp21", status);
5792  vvd(rp[1][1], 0.9999990999908750433, 1e-12,
5793  "eraPn00", "rp22", status);
5794  vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14,
5795  "eraPn00", "rp23", status);
5796 
5797  vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14,
5798  "eraPn00", "rp31", status);
5799  vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14,
5800  "eraPn00", "rp32", status);
5801  vvd(rp[2][2], 0.9999998300623538046, 1e-12,
5802  "eraPn00", "rp33", status);
5803 
5804  vvd(rbp[0][0], 0.9999989300052243993, 1e-12,
5805  "eraPn00", "rbp11", status);
5806  vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14,
5807  "eraPn00", "rbp12", status);
5808  vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14,
5809  "eraPn00", "rbp13", status);
5810 
5811  vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14,
5812  "eraPn00", "rbp21", status);
5813  vvd(rbp[1][1], 0.9999990998959191343, 1e-12,
5814  "eraPn00", "rbp22", status);
5815  vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14,
5816  "eraPn00", "rbp23", status);
5817 
5818  vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14,
5819  "eraPn00", "rbp31", status);
5820  vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14,
5821  "eraPn00", "rbp32", status);
5822  vvd(rbp[2][2], 0.9999998301093036269, 1e-12,
5823  "eraPn00", "rbp33", status);
5824 
5825  vvd(rn[0][0], 0.9999999999536069682, 1e-12,
5826  "eraPn00", "rn11", status);
5827  vvd(rn[0][1], 0.8837746144872140812e-5, 1e-16,
5828  "eraPn00", "rn12", status);
5829  vvd(rn[0][2], 0.3831488838252590008e-5, 1e-16,
5830  "eraPn00", "rn13", status);
5831 
5832  vvd(rn[1][0], -0.8837590456633197506e-5, 1e-16,
5833  "eraPn00", "rn21", status);
5834  vvd(rn[1][1], 0.9999999991354692733, 1e-12,
5835  "eraPn00", "rn22", status);
5836  vvd(rn[1][2], -0.4063198798559573702e-4, 1e-16,
5837  "eraPn00", "rn23", status);
5838 
5839  vvd(rn[2][0], -0.3831847930135328368e-5, 1e-16,
5840  "eraPn00", "rn31", status);
5841  vvd(rn[2][1], 0.4063195412258150427e-4, 1e-16,
5842  "eraPn00", "rn32", status);
5843  vvd(rn[2][2], 0.9999999991671806225, 1e-12,
5844  "eraPn00", "rn33", status);
5845 
5846  vvd(rbpn[0][0], 0.9999989440499982806, 1e-12,
5847  "eraPn00", "rbpn11", status);
5848  vvd(rbpn[0][1], -0.1332880253640848301e-2, 1e-14,
5849  "eraPn00", "rbpn12", status);
5850  vvd(rbpn[0][2], -0.5790760898731087295e-3, 1e-14,
5851  "eraPn00", "rbpn13", status);
5852 
5853  vvd(rbpn[1][0], 0.1332856746979948745e-2, 1e-14,
5854  "eraPn00", "rbpn21", status);
5855  vvd(rbpn[1][1], 0.9999991109064768883, 1e-12,
5856  "eraPn00", "rbpn22", status);
5857  vvd(rbpn[1][2], -0.4097740555723063806e-4, 1e-14,
5858  "eraPn00", "rbpn23", status);
5859 
5860  vvd(rbpn[2][0], 0.5791301929950205000e-3, 1e-14,
5861  "eraPn00", "rbpn31", status);
5862  vvd(rbpn[2][1], 0.4020553681373702931e-4, 1e-14,
5863  "eraPn00", "rbpn32", status);
5864  vvd(rbpn[2][2], 0.9999998314958529887, 1e-12,
5865  "eraPn00", "rbpn33", status);
5866 
5867 }
5868 
5869 static void t_pn00a(int *status)
5870 /*
5871 ** - - - - - - - -
5872 ** t _ p n 0 0 a
5873 ** - - - - - - - -
5874 **
5875 ** Test eraPn00a function.
5876 **
5877 ** Returned:
5878 ** status int FALSE = success, TRUE = fail
5879 **
5880 ** Called: eraPn00a, vvd
5881 **
5882 ** This revision: 2013 August 7
5883 */
5884 {
5885  double dpsi, deps, epsa,
5886  rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3];
5887 
5888 
5889  eraPn00a(2400000.5, 53736.0,
5890  &dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn);
5891 
5892  vvd(dpsi, -0.9630909107115518431e-5, 1e-12,
5893  "eraPn00a", "dpsi", status);
5894  vvd(deps, 0.4063239174001678710e-4, 1e-12,
5895  "eraPn00a", "deps", status);
5896  vvd(epsa, 0.4090791789404229916, 1e-12, "eraPn00a", "epsa", status);
5897 
5898  vvd(rb[0][0], 0.9999999999999942498, 1e-12,
5899  "eraPn00a", "rb11", status);
5900  vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16,
5901  "eraPn00a", "rb12", status);
5902  vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16,
5903  "eraPn00a", "rb13", status);
5904 
5905  vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16,
5906  "eraPn00a", "rb21", status);
5907  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
5908  "eraPn00a", "rb22", status);
5909  vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16,
5910  "eraPn00a", "rb23", status);
5911 
5912  vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16,
5913  "eraPn00a", "rb31", status);
5914  vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16,
5915  "eraPn00a", "rb32", status);
5916  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
5917  "eraPn00a", "rb33", status);
5918 
5919  vvd(rp[0][0], 0.9999989300532289018, 1e-12,
5920  "eraPn00a", "rp11", status);
5921  vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14,
5922  "eraPn00a", "rp12", status);
5923  vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14,
5924  "eraPn00a", "rp13", status);
5925 
5926  vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14,
5927  "eraPn00a", "rp21", status);
5928  vvd(rp[1][1], 0.9999990999908750433, 1e-12,
5929  "eraPn00a", "rp22", status);
5930  vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14,
5931  "eraPn00a", "rp23", status);
5932 
5933  vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14,
5934  "eraPn00a", "rp31", status);
5935  vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14,
5936  "eraPn00a", "rp32", status);
5937  vvd(rp[2][2], 0.9999998300623538046, 1e-12,
5938  "eraPn00a", "rp33", status);
5939 
5940  vvd(rbp[0][0], 0.9999989300052243993, 1e-12,
5941  "eraPn00a", "rbp11", status);
5942  vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14,
5943  "eraPn00a", "rbp12", status);
5944  vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14,
5945  "eraPn00a", "rbp13", status);
5946 
5947  vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14,
5948  "eraPn00a", "rbp21", status);
5949  vvd(rbp[1][1], 0.9999990998959191343, 1e-12,
5950  "eraPn00a", "rbp22", status);
5951  vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14,
5952  "eraPn00a", "rbp23", status);
5953 
5954  vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14,
5955  "eraPn00a", "rbp31", status);
5956  vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14,
5957  "eraPn00a", "rbp32", status);
5958  vvd(rbp[2][2], 0.9999998301093036269, 1e-12,
5959  "eraPn00a", "rbp33", status);
5960 
5961  vvd(rn[0][0], 0.9999999999536227949, 1e-12,
5962  "eraPn00a", "rn11", status);
5963  vvd(rn[0][1], 0.8836238544090873336e-5, 1e-14,
5964  "eraPn00a", "rn12", status);
5965  vvd(rn[0][2], 0.3830835237722400669e-5, 1e-14,
5966  "eraPn00a", "rn13", status);
5967 
5968  vvd(rn[1][0], -0.8836082880798569274e-5, 1e-14,
5969  "eraPn00a", "rn21", status);
5970  vvd(rn[1][1], 0.9999999991354655028, 1e-12,
5971  "eraPn00a", "rn22", status);
5972  vvd(rn[1][2], -0.4063240865362499850e-4, 1e-14,
5973  "eraPn00a", "rn23", status);
5974 
5975  vvd(rn[2][0], -0.3831194272065995866e-5, 1e-14,
5976  "eraPn00a", "rn31", status);
5977  vvd(rn[2][1], 0.4063237480216291775e-4, 1e-14,
5978  "eraPn00a", "rn32", status);
5979  vvd(rn[2][2], 0.9999999991671660338, 1e-12,
5980  "eraPn00a", "rn33", status);
5981 
5982  vvd(rbpn[0][0], 0.9999989440476103435, 1e-12,
5983  "eraPn00a", "rbpn11", status);
5984  vvd(rbpn[0][1], -0.1332881761240011763e-2, 1e-14,
5985  "eraPn00a", "rbpn12", status);
5986  vvd(rbpn[0][2], -0.5790767434730085751e-3, 1e-14,
5987  "eraPn00a", "rbpn13", status);
5988 
5989  vvd(rbpn[1][0], 0.1332858254308954658e-2, 1e-14,
5990  "eraPn00a", "rbpn21", status);
5991  vvd(rbpn[1][1], 0.9999991109044505577, 1e-12,
5992  "eraPn00a", "rbpn22", status);
5993  vvd(rbpn[1][2], -0.4097782710396580452e-4, 1e-14,
5994  "eraPn00a", "rbpn23", status);
5995 
5996  vvd(rbpn[2][0], 0.5791308472168152904e-3, 1e-14,
5997  "eraPn00a", "rbpn31", status);
5998  vvd(rbpn[2][1], 0.4020595661591500259e-4, 1e-14,
5999  "eraPn00a", "rbpn32", status);
6000  vvd(rbpn[2][2], 0.9999998314954572304, 1e-12,
6001  "eraPn00a", "rbpn33", status);
6002 
6003 }
6004 
6005 static void t_pn00b(int *status)
6006 /*
6007 ** - - - - - - - -
6008 ** t _ p n 0 0 b
6009 ** - - - - - - - -
6010 **
6011 ** Test eraPn00b function.
6012 **
6013 ** Returned:
6014 ** status int FALSE = success, TRUE = fail
6015 **
6016 ** Called: eraPn00b, vvd
6017 **
6018 ** This revision: 2013 August 7
6019 */
6020 {
6021  double dpsi, deps, epsa,
6022  rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3];
6023 
6024 
6025  eraPn00b(2400000.5, 53736.0, &dpsi, &deps, &epsa,
6026  rb, rp, rbp, rn, rbpn);
6027 
6028  vvd(dpsi, -0.9632552291148362783e-5, 1e-12,
6029  "eraPn00b", "dpsi", status);
6030  vvd(deps, 0.4063197106621159367e-4, 1e-12,
6031  "eraPn00b", "deps", status);
6032  vvd(epsa, 0.4090791789404229916, 1e-12, "eraPn00b", "epsa", status);
6033 
6034  vvd(rb[0][0], 0.9999999999999942498, 1e-12,
6035  "eraPn00b", "rb11", status);
6036  vvd(rb[0][1], -0.7078279744199196626e-7, 1e-16,
6037  "eraPn00b", "rb12", status);
6038  vvd(rb[0][2], 0.8056217146976134152e-7, 1e-16,
6039  "eraPn00b", "rb13", status);
6040 
6041  vvd(rb[1][0], 0.7078279477857337206e-7, 1e-16,
6042  "eraPn00b", "rb21", status);
6043  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
6044  "eraPn00b", "rb22", status);
6045  vvd(rb[1][2], 0.3306041454222136517e-7, 1e-16,
6046  "eraPn00b", "rb23", status);
6047 
6048  vvd(rb[2][0], -0.8056217380986972157e-7, 1e-16,
6049  "eraPn00b", "rb31", status);
6050  vvd(rb[2][1], -0.3306040883980552500e-7, 1e-16,
6051  "eraPn00b", "rb32", status);
6052  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
6053  "eraPn00b", "rb33", status);
6054 
6055  vvd(rp[0][0], 0.9999989300532289018, 1e-12,
6056  "eraPn00b", "rp11", status);
6057  vvd(rp[0][1], -0.1341647226791824349e-2, 1e-14,
6058  "eraPn00b", "rp12", status);
6059  vvd(rp[0][2], -0.5829880927190296547e-3, 1e-14,
6060  "eraPn00b", "rp13", status);
6061 
6062  vvd(rp[1][0], 0.1341647231069759008e-2, 1e-14,
6063  "eraPn00b", "rp21", status);
6064  vvd(rp[1][1], 0.9999990999908750433, 1e-12,
6065  "eraPn00b", "rp22", status);
6066  vvd(rp[1][2], -0.3837444441583715468e-6, 1e-14,
6067  "eraPn00b", "rp23", status);
6068 
6069  vvd(rp[2][0], 0.5829880828740957684e-3, 1e-14,
6070  "eraPn00b", "rp31", status);
6071  vvd(rp[2][1], -0.3984203267708834759e-6, 1e-14,
6072  "eraPn00b", "rp32", status);
6073  vvd(rp[2][2], 0.9999998300623538046, 1e-12,
6074  "eraPn00b", "rp33", status);
6075 
6076  vvd(rbp[0][0], 0.9999989300052243993, 1e-12,
6077  "eraPn00b", "rbp11", status);
6078  vvd(rbp[0][1], -0.1341717990239703727e-2, 1e-14,
6079  "eraPn00b", "rbp12", status);
6080  vvd(rbp[0][2], -0.5829075749891684053e-3, 1e-14,
6081  "eraPn00b", "rbp13", status);
6082 
6083  vvd(rbp[1][0], 0.1341718013831739992e-2, 1e-14,
6084  "eraPn00b", "rbp21", status);
6085  vvd(rbp[1][1], 0.9999990998959191343, 1e-12,
6086  "eraPn00b", "rbp22", status);
6087  vvd(rbp[1][2], -0.3505759733565421170e-6, 1e-14,
6088  "eraPn00b", "rbp23", status);
6089 
6090  vvd(rbp[2][0], 0.5829075206857717883e-3, 1e-14,
6091  "eraPn00b", "rbp31", status);
6092  vvd(rbp[2][1], -0.4315219955198608970e-6, 1e-14,
6093  "eraPn00b", "rbp32", status);
6094  vvd(rbp[2][2], 0.9999998301093036269, 1e-12,
6095  "eraPn00b", "rbp33", status);
6096 
6097  vvd(rn[0][0], 0.9999999999536069682, 1e-12,
6098  "eraPn00b", "rn11", status);
6099  vvd(rn[0][1], 0.8837746144871248011e-5, 1e-14,
6100  "eraPn00b", "rn12", status);
6101  vvd(rn[0][2], 0.3831488838252202945e-5, 1e-14,
6102  "eraPn00b", "rn13", status);
6103 
6104  vvd(rn[1][0], -0.8837590456632304720e-5, 1e-14,
6105  "eraPn00b", "rn21", status);
6106  vvd(rn[1][1], 0.9999999991354692733, 1e-12,
6107  "eraPn00b", "rn22", status);
6108  vvd(rn[1][2], -0.4063198798559591654e-4, 1e-14,
6109  "eraPn00b", "rn23", status);
6110 
6111  vvd(rn[2][0], -0.3831847930134941271e-5, 1e-14,
6112  "eraPn00b", "rn31", status);
6113  vvd(rn[2][1], 0.4063195412258168380e-4, 1e-14,
6114  "eraPn00b", "rn32", status);
6115  vvd(rn[2][2], 0.9999999991671806225, 1e-12,
6116  "eraPn00b", "rn33", status);
6117 
6118  vvd(rbpn[0][0], 0.9999989440499982806, 1e-12,
6119  "eraPn00b", "rbpn11", status);
6120  vvd(rbpn[0][1], -0.1332880253640849194e-2, 1e-14,
6121  "eraPn00b", "rbpn12", status);
6122  vvd(rbpn[0][2], -0.5790760898731091166e-3, 1e-14,
6123  "eraPn00b", "rbpn13", status);
6124 
6125  vvd(rbpn[1][0], 0.1332856746979949638e-2, 1e-14,
6126  "eraPn00b", "rbpn21", status);
6127  vvd(rbpn[1][1], 0.9999991109064768883, 1e-12,
6128  "eraPn00b", "rbpn22", status);
6129  vvd(rbpn[1][2], -0.4097740555723081811e-4, 1e-14,
6130  "eraPn00b", "rbpn23", status);
6131 
6132  vvd(rbpn[2][0], 0.5791301929950208873e-3, 1e-14,
6133  "eraPn00b", "rbpn31", status);
6134  vvd(rbpn[2][1], 0.4020553681373720832e-4, 1e-14,
6135  "eraPn00b", "rbpn32", status);
6136  vvd(rbpn[2][2], 0.9999998314958529887, 1e-12,
6137  "eraPn00b", "rbpn33", status);
6138 
6139 }
6140 
6141 static void t_pn06a(int *status)
6142 /*
6143 ** - - - - - - - -
6144 ** t _ p n 0 6 a
6145 ** - - - - - - - -
6146 **
6147 ** Test eraPn06a function.
6148 **
6149 ** Returned:
6150 ** status int FALSE = success, TRUE = fail
6151 **
6152 ** Called: eraPn06a, vvd
6153 **
6154 ** This revision: 2013 August 7
6155 */
6156 {
6157  double dpsi, deps, epsa;
6158  double rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3];
6159 
6160 
6161  eraPn06a(2400000.5, 53736.0, &dpsi, &deps, &epsa,
6162  rb, rp, rbp, rn, rbpn);
6163 
6164  vvd(dpsi, -0.9630912025820308797e-5, 1e-12,
6165  "eraPn06a", "dpsi", status);
6166  vvd(deps, 0.4063238496887249798e-4, 1e-12,
6167  "eraPn06a", "deps", status);
6168  vvd(epsa, 0.4090789763356509926, 1e-12, "eraPn06a", "epsa", status);
6169 
6170  vvd(rb[0][0], 0.9999999999999942497, 1e-12,
6171  "eraPn06a", "rb11", status);
6172  vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14,
6173  "eraPn06a", "rb12", status);
6174  vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14,
6175  "eraPn06a", "rb13", status);
6176 
6177  vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14,
6178  "eraPn06a", "rb21", status);
6179  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
6180  "eraPn06a", "rb22", status);
6181  vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14,
6182  "eraPn06a", "rb23", status);
6183 
6184  vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14,
6185  "eraPn06a", "rb31", status);
6186  vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14,
6187  "eraPn06a", "rb32", status);
6188  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
6189  "eraPn06a", "rb33", status);
6190 
6191  vvd(rp[0][0], 0.9999989300536854831, 1e-12,
6192  "eraPn06a", "rp11", status);
6193  vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14,
6194  "eraPn06a", "rp12", status);
6195  vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14,
6196  "eraPn06a", "rp13", status);
6197 
6198  vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14,
6199  "eraPn06a", "rp21", status);
6200  vvd(rp[1][1], 0.9999990999913319321, 1e-12,
6201  "eraPn06a", "rp22", status);
6202  vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14,
6203  "eraPn06a", "rp23", status);
6204 
6205  vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14,
6206  "eraPn06a", "rp31", status);
6207  vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14,
6208  "eraPn06a", "rp32", status);
6209  vvd(rp[2][2], 0.9999998300623534950, 1e-12,
6210  "eraPn06a", "rp33", status);
6211 
6212  vvd(rbp[0][0], 0.9999989300056797893, 1e-12,
6213  "eraPn06a", "rbp11", status);
6214  vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14,
6215  "eraPn06a", "rbp12", status);
6216  vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14,
6217  "eraPn06a", "rbp13", status);
6218 
6219  vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14,
6220  "eraPn06a", "rbp21", status);
6221  vvd(rbp[1][1], 0.9999990998963748448, 1e-12,
6222  "eraPn06a", "rbp22", status);
6223  vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14,
6224  "eraPn06a", "rbp23", status);
6225 
6226  vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14,
6227  "eraPn06a", "rbp31", status);
6228  vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14,
6229  "eraPn06a", "rbp32", status);
6230  vvd(rbp[2][2], 0.9999998301093032943, 1e-12,
6231  "eraPn06a", "rbp33", status);
6232 
6233  vvd(rn[0][0], 0.9999999999536227668, 1e-12,
6234  "eraPn06a", "rn11", status);
6235  vvd(rn[0][1], 0.8836241998111535233e-5, 1e-14,
6236  "eraPn06a", "rn12", status);
6237  vvd(rn[0][2], 0.3830834608415287707e-5, 1e-14,
6238  "eraPn06a", "rn13", status);
6239 
6240  vvd(rn[1][0], -0.8836086334870740138e-5, 1e-14,
6241  "eraPn06a", "rn21", status);
6242  vvd(rn[1][1], 0.9999999991354657474, 1e-12,
6243  "eraPn06a", "rn22", status);
6244  vvd(rn[1][2], -0.4063240188248455065e-4, 1e-14,
6245  "eraPn06a", "rn23", status);
6246 
6247  vvd(rn[2][0], -0.3831193642839398128e-5, 1e-14,
6248  "eraPn06a", "rn31", status);
6249  vvd(rn[2][1], 0.4063236803101479770e-4, 1e-14,
6250  "eraPn06a", "rn32", status);
6251  vvd(rn[2][2], 0.9999999991671663114, 1e-12,
6252  "eraPn06a", "rn33", status);
6253 
6254  vvd(rbpn[0][0], 0.9999989440480669738, 1e-12,
6255  "eraPn06a", "rbpn11", status);
6256  vvd(rbpn[0][1], -0.1332881418091915973e-2, 1e-14,
6257  "eraPn06a", "rbpn12", status);
6258  vvd(rbpn[0][2], -0.5790767447612042565e-3, 1e-14,
6259  "eraPn06a", "rbpn13", status);
6260 
6261  vvd(rbpn[1][0], 0.1332857911250989133e-2, 1e-14,
6262  "eraPn06a", "rbpn21", status);
6263  vvd(rbpn[1][1], 0.9999991109049141908, 1e-12,
6264  "eraPn06a", "rbpn22", status);
6265  vvd(rbpn[1][2], -0.4097767128546784878e-4, 1e-14,
6266  "eraPn06a", "rbpn23", status);
6267 
6268  vvd(rbpn[2][0], 0.5791308482835292617e-3, 1e-14,
6269  "eraPn06a", "rbpn31", status);
6270  vvd(rbpn[2][1], 0.4020580099454020310e-4, 1e-14,
6271  "eraPn06a", "rbpn32", status);
6272  vvd(rbpn[2][2], 0.9999998314954628695, 1e-12,
6273  "eraPn06a", "rbpn33", status);
6274 
6275 }
6276 
6277 static void t_pn06(int *status)
6278 /*
6279 ** - - - - - - -
6280 ** t _ p n 0 6
6281 ** - - - - - - -
6282 **
6283 ** Test eraPn06 function.
6284 **
6285 ** Returned:
6286 ** status int FALSE = success, TRUE = fail
6287 **
6288 ** Called: eraPn06, vvd
6289 **
6290 ** This revision: 2013 August 7
6291 */
6292 {
6293  double dpsi, deps, epsa,
6294  rb[3][3], rp[3][3], rbp[3][3], rn[3][3], rbpn[3][3];
6295 
6296 
6297  dpsi = -0.9632552291149335877e-5;
6298  deps = 0.4063197106621141414e-4;
6299 
6300  eraPn06(2400000.5, 53736.0, dpsi, deps,
6301  &epsa, rb, rp, rbp, rn, rbpn);
6302 
6303  vvd(epsa, 0.4090789763356509926, 1e-12, "eraPn06", "epsa", status);
6304 
6305  vvd(rb[0][0], 0.9999999999999942497, 1e-12,
6306  "eraPn06", "rb11", status);
6307  vvd(rb[0][1], -0.7078368960971557145e-7, 1e-14,
6308  "eraPn06", "rb12", status);
6309  vvd(rb[0][2], 0.8056213977613185606e-7, 1e-14,
6310  "eraPn06", "rb13", status);
6311 
6312  vvd(rb[1][0], 0.7078368694637674333e-7, 1e-14,
6313  "eraPn06", "rb21", status);
6314  vvd(rb[1][1], 0.9999999999999969484, 1e-12,
6315  "eraPn06", "rb22", status);
6316  vvd(rb[1][2], 0.3305943742989134124e-7, 1e-14,
6317  "eraPn06", "rb23", status);
6318 
6319  vvd(rb[2][0], -0.8056214211620056792e-7, 1e-14,
6320  "eraPn06", "rb31", status);
6321  vvd(rb[2][1], -0.3305943172740586950e-7, 1e-14,
6322  "eraPn06", "rb32", status);
6323  vvd(rb[2][2], 0.9999999999999962084, 1e-12,
6324  "eraPn06", "rb33", status);
6325 
6326  vvd(rp[0][0], 0.9999989300536854831, 1e-12,
6327  "eraPn06", "rp11", status);
6328  vvd(rp[0][1], -0.1341646886204443795e-2, 1e-14,
6329  "eraPn06", "rp12", status);
6330  vvd(rp[0][2], -0.5829880933488627759e-3, 1e-14,
6331  "eraPn06", "rp13", status);
6332 
6333  vvd(rp[1][0], 0.1341646890569782183e-2, 1e-14,
6334  "eraPn06", "rp21", status);
6335  vvd(rp[1][1], 0.9999990999913319321, 1e-12,
6336  "eraPn06", "rp22", status);
6337  vvd(rp[1][2], -0.3835944216374477457e-6, 1e-14,
6338  "eraPn06", "rp23", status);
6339 
6340  vvd(rp[2][0], 0.5829880833027867368e-3, 1e-14,
6341  "eraPn06", "rp31", status);
6342  vvd(rp[2][1], -0.3985701514686976112e-6, 1e-14,
6343  "eraPn06", "rp32", status);
6344  vvd(rp[2][2], 0.9999998300623534950, 1e-12,
6345  "eraPn06", "rp33", status);
6346 
6347  vvd(rbp[0][0], 0.9999989300056797893, 1e-12,
6348  "eraPn06", "rbp11", status);
6349  vvd(rbp[0][1], -0.1341717650545059598e-2, 1e-14,
6350  "eraPn06", "rbp12", status);
6351  vvd(rbp[0][2], -0.5829075756493728856e-3, 1e-14,
6352  "eraPn06", "rbp13", status);
6353 
6354  vvd(rbp[1][0], 0.1341717674223918101e-2, 1e-14,
6355  "eraPn06", "rbp21", status);
6356  vvd(rbp[1][1], 0.9999990998963748448, 1e-12,
6357  "eraPn06", "rbp22", status);
6358  vvd(rbp[1][2], -0.3504269280170069029e-6, 1e-14,
6359  "eraPn06", "rbp23", status);
6360 
6361  vvd(rbp[2][0], 0.5829075211461454599e-3, 1e-14,
6362  "eraPn06", "rbp31", status);
6363  vvd(rbp[2][1], -0.4316708436255949093e-6, 1e-14,
6364  "eraPn06", "rbp32", status);
6365  vvd(rbp[2][2], 0.9999998301093032943, 1e-12,
6366  "eraPn06", "rbp33", status);
6367 
6368  vvd(rn[0][0], 0.9999999999536069682, 1e-12,
6369  "eraPn06", "rn11", status);
6370  vvd(rn[0][1], 0.8837746921149881914e-5, 1e-14,
6371  "eraPn06", "rn12", status);
6372  vvd(rn[0][2], 0.3831487047682968703e-5, 1e-14,
6373  "eraPn06", "rn13", status);
6374 
6375  vvd(rn[1][0], -0.8837591232983692340e-5, 1e-14,
6376  "eraPn06", "rn21", status);
6377  vvd(rn[1][1], 0.9999999991354692664, 1e-12,
6378  "eraPn06", "rn22", status);
6379  vvd(rn[1][2], -0.4063198798558931215e-4, 1e-14,
6380  "eraPn06", "rn23", status);
6381 
6382  vvd(rn[2][0], -0.3831846139597250235e-5, 1e-14,
6383  "eraPn06", "rn31", status);
6384  vvd(rn[2][1], 0.4063195412258792914e-4, 1e-14,
6385  "eraPn06", "rn32", status);
6386  vvd(rn[2][2], 0.9999999991671806293, 1e-12,
6387  "eraPn06", "rn33", status);
6388 
6389  vvd(rbpn[0][0], 0.9999989440504506688, 1e-12,
6390  "eraPn06", "rbpn11", status);
6391  vvd(rbpn[0][1], -0.1332879913170492655e-2, 1e-14,
6392  "eraPn06", "rbpn12", status);
6393  vvd(rbpn[0][2], -0.5790760923225655753e-3, 1e-14,
6394  "eraPn06", "rbpn13", status);
6395 
6396  vvd(rbpn[1][0], 0.1332856406595754748e-2, 1e-14,
6397  "eraPn06", "rbpn21", status);
6398  vvd(rbpn[1][1], 0.9999991109069366795, 1e-12,
6399  "eraPn06", "rbpn22", status);
6400  vvd(rbpn[1][2], -0.4097725651142641812e-4, 1e-14,
6401  "eraPn06", "rbpn23", status);
6402 
6403  vvd(rbpn[2][0], 0.5791301952321296716e-3, 1e-14,
6404  "eraPn06", "rbpn31", status);
6405  vvd(rbpn[2][1], 0.4020538796195230577e-4, 1e-14,
6406  "eraPn06", "rbpn32", status);
6407  vvd(rbpn[2][2], 0.9999998314958576778, 1e-12,
6408  "eraPn06", "rbpn33", status);
6409 
6410 }
6411 
6412 static void t_pnm00a(int *status)
6413 /*
6414 ** - - - - - - - - -
6415 ** t _ p n m 0 0 a
6416 ** - - - - - - - - -
6417 **
6418 ** Test eraPnm00a function.
6419 **
6420 ** Returned:
6421 ** status int FALSE = success, TRUE = fail
6422 **
6423 ** Called: eraPnm00a, vvd
6424 **
6425 ** This revision: 2013 August 7
6426 */
6427 {
6428  double rbpn[3][3];
6429 
6430 
6431  eraPnm00a(2400000.5, 50123.9999, rbpn);
6432 
6433  vvd(rbpn[0][0], 0.9999995832793134257, 1e-12,
6434  "eraPnm00a", "11", status);
6435  vvd(rbpn[0][1], 0.8372384254137809439e-3, 1e-14,
6436  "eraPnm00a", "12", status);
6437  vvd(rbpn[0][2], 0.3639684306407150645e-3, 1e-14,
6438  "eraPnm00a", "13", status);
6439 
6440  vvd(rbpn[1][0], -0.8372535226570394543e-3, 1e-14,
6441  "eraPnm00a", "21", status);
6442  vvd(rbpn[1][1], 0.9999996486491582471, 1e-12,
6443  "eraPnm00a", "22", status);
6444  vvd(rbpn[1][2], 0.4132915262664072381e-4, 1e-14,
6445  "eraPnm00a", "23", status);
6446 
6447  vvd(rbpn[2][0], -0.3639337004054317729e-3, 1e-14,
6448  "eraPnm00a", "31", status);
6449  vvd(rbpn[2][1], -0.4163386925461775873e-4, 1e-14,
6450  "eraPnm00a", "32", status);
6451  vvd(rbpn[2][2], 0.9999999329094390695, 1e-12,
6452  "eraPnm00a", "33", status);
6453 
6454 }
6455 
6456 static void t_pnm00b(int *status)
6457 /*
6458 ** - - - - - - - - -
6459 ** t _ p n m 0 0 b
6460 ** - - - - - - - - -
6461 **
6462 ** Test eraPnm00b function.
6463 **
6464 ** Returned:
6465 ** status int FALSE = success, TRUE = fail
6466 **
6467 ** Called: eraPnm00b, vvd
6468 **
6469 ** This revision: 2013 August 7
6470 */
6471 {
6472  double rbpn[3][3];
6473 
6474 
6475  eraPnm00b(2400000.5, 50123.9999, rbpn);
6476 
6477  vvd(rbpn[0][0], 0.9999995832776208280, 1e-12,
6478  "eraPnm00b", "11", status);
6479  vvd(rbpn[0][1], 0.8372401264429654837e-3, 1e-14,
6480  "eraPnm00b", "12", status);
6481  vvd(rbpn[0][2], 0.3639691681450271771e-3, 1e-14,
6482  "eraPnm00b", "13", status);
6483 
6484  vvd(rbpn[1][0], -0.8372552234147137424e-3, 1e-14,
6485  "eraPnm00b", "21", status);
6486  vvd(rbpn[1][1], 0.9999996486477686123, 1e-12,
6487  "eraPnm00b", "22", status);
6488  vvd(rbpn[1][2], 0.4132832190946052890e-4, 1e-14,
6489  "eraPnm00b", "23", status);
6490 
6491  vvd(rbpn[2][0], -0.3639344385341866407e-3, 1e-14,
6492  "eraPnm00b", "31", status);
6493  vvd(rbpn[2][1], -0.4163303977421522785e-4, 1e-14,
6494  "eraPnm00b", "32", status);
6495  vvd(rbpn[2][2], 0.9999999329092049734, 1e-12,
6496  "eraPnm00b", "33", status);
6497 
6498 }
6499 
6500 static void t_pnm06a(int *status)
6501 /*
6502 ** - - - - - - - - -
6503 ** t _ p n m 0 6 a
6504 ** - - - - - - - - -
6505 **
6506 ** Test eraPnm06a function.
6507 **
6508 ** Returned:
6509 ** status int FALSE = success, TRUE = fail
6510 **
6511 ** Called: eraPnm06a, vvd
6512 **
6513 ** This revision: 2013 August 7
6514 */
6515 {
6516  double rbpn[3][3];
6517 
6518 
6519  eraPnm06a(2400000.5, 50123.9999, rbpn);
6520 
6521  vvd(rbpn[0][0], 0.9999995832794205484, 1e-12,
6522  "eraPnm06a", "11", status);
6523  vvd(rbpn[0][1], 0.8372382772630962111e-3, 1e-14,
6524  "eraPnm06a", "12", status);
6525  vvd(rbpn[0][2], 0.3639684771140623099e-3, 1e-14,
6526  "eraPnm06a", "13", status);
6527 
6528  vvd(rbpn[1][0], -0.8372533744743683605e-3, 1e-14,
6529  "eraPnm06a", "21", status);
6530  vvd(rbpn[1][1], 0.9999996486492861646, 1e-12,
6531  "eraPnm06a", "22", status);
6532  vvd(rbpn[1][2], 0.4132905944611019498e-4, 1e-14,
6533  "eraPnm06a", "23", status);
6534 
6535  vvd(rbpn[2][0], -0.3639337469629464969e-3, 1e-14,
6536  "eraPnm06a", "31", status);
6537  vvd(rbpn[2][1], -0.4163377605910663999e-4, 1e-14,
6538  "eraPnm06a", "32", status);
6539  vvd(rbpn[2][2], 0.9999999329094260057, 1e-12,
6540  "eraPnm06a", "33", status);
6541 
6542 }
6543 
6544 static void t_pnm80(int *status)
6545 /*
6546 ** - - - - - - - -
6547 ** t _ p n m 8 0
6548 ** - - - - - - - -
6549 **
6550 ** Test eraPnm80 function.
6551 **
6552 ** Returned:
6553 ** status int FALSE = success, TRUE = fail
6554 **
6555 ** Called: eraPnm80, vvd
6556 **
6557 ** This revision: 2013 August 7
6558 */
6559 {
6560  double rmatpn[3][3];
6561 
6562 
6563  eraPnm80(2400000.5, 50123.9999, rmatpn);
6564 
6565  vvd(rmatpn[0][0], 0.9999995831934611169, 1e-12,
6566  "eraPnm80", "11", status);
6567  vvd(rmatpn[0][1], 0.8373654045728124011e-3, 1e-14,
6568  "eraPnm80", "12", status);
6569  vvd(rmatpn[0][2], 0.3639121916933106191e-3, 1e-14,
6570  "eraPnm80", "13", status);
6571 
6572  vvd(rmatpn[1][0], -0.8373804896118301316e-3, 1e-14,
6573  "eraPnm80", "21", status);
6574  vvd(rmatpn[1][1], 0.9999996485439674092, 1e-12,
6575  "eraPnm80", "22", status);
6576  vvd(rmatpn[1][2], 0.4130202510421549752e-4, 1e-14,
6577  "eraPnm80", "23", status);
6578 
6579  vvd(rmatpn[2][0], -0.3638774789072144473e-3, 1e-14,
6580  "eraPnm80", "31", status);
6581  vvd(rmatpn[2][1], -0.4160674085851722359e-4, 1e-14,
6582  "eraPnm80", "32", status);
6583  vvd(rmatpn[2][2], 0.9999999329310274805, 1e-12,
6584  "eraPnm80", "33", status);
6585 
6586 }
6587 
6588 static void t_pom00(int *status)
6589 /*
6590 ** - - - - - - - -
6591 ** t _ p o m 0 0
6592 ** - - - - - - - -
6593 **
6594 ** Test eraPom00 function.
6595 **
6596 ** Returned:
6597 ** status int FALSE = success, TRUE = fail
6598 **
6599 ** Called: eraPom00, vvd
6600 **
6601 ** This revision: 2013 August 7
6602 */
6603 {
6604  double xp, yp, sp, rpom[3][3];
6605 
6606 
6607  xp = 2.55060238e-7;
6608  yp = 1.860359247e-6;
6609  sp = -0.1367174580728891460e-10;
6610 
6611  eraPom00(xp, yp, sp, rpom);
6612 
6613  vvd(rpom[0][0], 0.9999999999999674721, 1e-12,
6614  "eraPom00", "11", status);
6615  vvd(rpom[0][1], -0.1367174580728846989e-10, 1e-16,
6616  "eraPom00", "12", status);
6617  vvd(rpom[0][2], 0.2550602379999972345e-6, 1e-16,
6618  "eraPom00", "13", status);
6619 
6620  vvd(rpom[1][0], 0.1414624947957029801e-10, 1e-16,
6621  "eraPom00", "21", status);
6622  vvd(rpom[1][1], 0.9999999999982695317, 1e-12,
6623  "eraPom00", "22", status);
6624  vvd(rpom[1][2], -0.1860359246998866389e-5, 1e-16,
6625  "eraPom00", "23", status);
6626 
6627  vvd(rpom[2][0], -0.2550602379741215021e-6, 1e-16,
6628  "eraPom00", "31", status);
6629  vvd(rpom[2][1], 0.1860359247002414021e-5, 1e-16,
6630  "eraPom00", "32", status);
6631  vvd(rpom[2][2], 0.9999999999982370039, 1e-12,
6632  "eraPom00", "33", status);
6633 
6634 }
6635 
6636 static void t_ppp(int *status)
6637 /*
6638 ** - - - - - -
6639 ** t _ p p p
6640 ** - - - - - -
6641 **
6642 ** Test eraPpp function.
6643 **
6644 ** Returned:
6645 ** status int FALSE = success, TRUE = fail
6646 **
6647 ** Called: eraPpp, vvd
6648 **
6649 ** This revision: 2013 August 7
6650 */
6651 {
6652  double a[3], b[3], apb[3];
6653 
6654 
6655  a[0] = 2.0;
6656  a[1] = 2.0;
6657  a[2] = 3.0;
6658 
6659  b[0] = 1.0;
6660  b[1] = 3.0;
6661  b[2] = 4.0;
6662 
6663  eraPpp(a, b, apb);
6664 
6665  vvd(apb[0], 3.0, 1e-12, "eraPpp", "0", status);
6666  vvd(apb[1], 5.0, 1e-12, "eraPpp", "1", status);
6667  vvd(apb[2], 7.0, 1e-12, "eraPpp", "2", status);
6668 
6669 }
6670 
6671 static void t_ppsp(int *status)
6672 /*
6673 ** - - - - - - -
6674 ** t _ p p s p
6675 ** - - - - - - -
6676 **
6677 ** Test eraPpsp function.
6678 **
6679 ** Returned:
6680 ** status int FALSE = success, TRUE = fail
6681 **
6682 ** Called: eraPpsp, vvd
6683 **
6684 ** This revision: 2013 August 7
6685 */
6686 {
6687  double a[3], s, b[3], apsb[3];
6688 
6689 
6690  a[0] = 2.0;
6691  a[1] = 2.0;
6692  a[2] = 3.0;
6693 
6694  s = 5.0;
6695 
6696  b[0] = 1.0;
6697  b[1] = 3.0;
6698  b[2] = 4.0;
6699 
6700  eraPpsp(a, s, b, apsb);
6701 
6702  vvd(apsb[0], 7.0, 1e-12, "eraPpsp", "0", status);
6703  vvd(apsb[1], 17.0, 1e-12, "eraPpsp", "1", status);
6704  vvd(apsb[2], 23.0, 1e-12, "eraPpsp", "2", status);
6705 
6706 }
6707 
6708 static void t_pr00(int *status)
6709 /*
6710 ** - - - - - - -
6711 ** t _ p r 0 0
6712 ** - - - - - - -
6713 **
6714 ** Test eraPr00 function.
6715 **
6716 ** Returned:
6717 ** status int FALSE = success, TRUE = fail
6718 **
6719 ** Called: eraPr00, vvd
6720 **
6721 ** This revision: 2013 August 7
6722 */
6723 {
6724  double dpsipr, depspr;
6725 
6726  eraPr00(2400000.5, 53736, &dpsipr, &depspr);
6727 
6728  vvd(dpsipr, -0.8716465172668347629e-7, 1e-22,
6729  "eraPr00", "dpsipr", status);
6730  vvd(depspr, -0.7342018386722813087e-8, 1e-22,
6731  "eraPr00", "depspr", status);
6732 
6733 }
6734 
6735 static void t_prec76(int *status)
6736 /*
6737 ** - - - - - - - - -
6738 ** t _ p r e c 7 6
6739 ** - - - - - - - - -
6740 **
6741 ** Test eraPrec76 function.
6742 **
6743 ** Returned:
6744 ** status int FALSE = success, TRUE = fail
6745 **
6746 ** Called: eraPrec76, vvd
6747 **
6748 ** This revision: 2013 August 7
6749 */
6750 {
6751  double ep01, ep02, ep11, ep12, zeta, z, theta;
6752 
6753 
6754  ep01 = 2400000.5;
6755  ep02 = 33282.0;
6756  ep11 = 2400000.5;
6757  ep12 = 51544.0;
6758 
6759  eraPrec76(ep01, ep02, ep11, ep12, &zeta, &z, &theta);
6760 
6761  vvd(zeta, 0.5588961642000161243e-2, 1e-12,
6762  "eraPrec76", "zeta", status);
6763  vvd(z, 0.5589922365870680624e-2, 1e-12,
6764  "eraPrec76", "z", status);
6765  vvd(theta, 0.4858945471687296760e-2, 1e-12,
6766  "eraPrec76", "theta", status);
6767 
6768 }
6769 
6770 static void t_pv2p(int *status)
6771 /*
6772 ** - - - - - - -
6773 ** t _ p v 2 p
6774 ** - - - - - - -
6775 **
6776 ** Test eraPv2p function.
6777 **
6778 ** Returned:
6779 ** status int FALSE = success, TRUE = fail
6780 **
6781 ** Called: eraPv2p, vvd
6782 **
6783 ** This revision: 2013 August 7
6784 */
6785 {
6786  double pv[2][3], p[3];
6787 
6788 
6789  pv[0][0] = 0.3;
6790  pv[0][1] = 1.2;
6791  pv[0][2] = -2.5;
6792 
6793  pv[1][0] = -0.5;
6794  pv[1][1] = 3.1;
6795  pv[1][2] = 0.9;
6796 
6797  eraPv2p(pv, p);
6798 
6799  vvd(p[0], 0.3, 0.0, "eraPv2p", "1", status);
6800  vvd(p[1], 1.2, 0.0, "eraPv2p", "2", status);
6801  vvd(p[2], -2.5, 0.0, "eraPv2p", "3", status);
6802 
6803 }
6804 
6805 static void t_pv2s(int *status)
6806 /*
6807 ** - - - - - - -
6808 ** t _ p v 2 s
6809 ** - - - - - - -
6810 **
6811 ** Test eraPv2s function.
6812 **
6813 ** Returned:
6814 ** status int FALSE = success, TRUE = fail
6815 **
6816 ** Called: eraPv2s, vvd
6817 **
6818 ** This revision: 2013 August 7
6819 */
6820 {
6821  double pv[2][3], theta, phi, r, td, pd, rd;
6822 
6823 
6824  pv[0][0] = -0.4514964673880165;
6825  pv[0][1] = 0.03093394277342585;
6826  pv[0][2] = 0.05594668105108779;
6827 
6828  pv[1][0] = 1.292270850663260e-5;
6829  pv[1][1] = 2.652814182060692e-6;
6830  pv[1][2] = 2.568431853930293e-6;
6831 
6832  eraPv2s(pv, &theta, &phi, &r, &td, &pd, &rd);
6833 
6834  vvd(theta, 3.073185307179586515, 1e-12, "eraPv2s", "theta", status);
6835  vvd(phi, 0.1229999999999999992, 1e-12, "eraPv2s", "phi", status);
6836  vvd(r, 0.4559999999999999757, 1e-12, "eraPv2s", "r", status);
6837  vvd(td, -0.7800000000000000364e-5, 1e-16, "eraPv2s", "td", status);
6838  vvd(pd, 0.9010000000000001639e-5, 1e-16, "eraPv2s", "pd", status);
6839  vvd(rd, -0.1229999999999999832e-4, 1e-16, "eraPv2s", "rd", status);
6840 
6841 }
6842 
6843 static void t_pvdpv(int *status)
6844 /*
6845 ** - - - - - - - -
6846 ** t _ p v d p v
6847 ** - - - - - - - -
6848 **
6849 ** Test eraPvdpv function.
6850 **
6851 ** Returned:
6852 ** status int FALSE = success, TRUE = fail
6853 **
6854 ** Called: eraPvdpv, vvd
6855 **
6856 ** This revision: 2013 August 7
6857 */
6858 {
6859  double a[2][3], b[2][3], adb[2];
6860 
6861 
6862  a[0][0] = 2.0;
6863  a[0][1] = 2.0;
6864  a[0][2] = 3.0;
6865 
6866  a[1][0] = 6.0;
6867  a[1][1] = 0.0;
6868  a[1][2] = 4.0;
6869 
6870  b[0][0] = 1.0;
6871  b[0][1] = 3.0;
6872  b[0][2] = 4.0;
6873 
6874  b[1][0] = 0.0;
6875  b[1][1] = 2.0;
6876  b[1][2] = 8.0;
6877 
6878  eraPvdpv(a, b, adb);
6879 
6880  vvd(adb[0], 20.0, 1e-12, "eraPvdpv", "1", status);
6881  vvd(adb[1], 50.0, 1e-12, "eraPvdpv", "2", status);
6882 
6883 }
6884 
6885 static void t_pvm(int *status)
6886 /*
6887 ** - - - - - -
6888 ** t _ p v m
6889 ** - - - - - -
6890 **
6891 ** Test eraPvm function.
6892 **
6893 ** Returned:
6894 ** status int FALSE = success, TRUE = fail
6895 **
6896 ** Called: eraPvm, vvd
6897 **
6898 ** This revision: 2013 August 7
6899 */
6900 {
6901  double pv[2][3], r, s;
6902 
6903 
6904  pv[0][0] = 0.3;
6905  pv[0][1] = 1.2;
6906  pv[0][2] = -2.5;
6907 
6908  pv[1][0] = 0.45;
6909  pv[1][1] = -0.25;
6910  pv[1][2] = 1.1;
6911 
6912  eraPvm(pv, &r, &s);
6913 
6914  vvd(r, 2.789265136196270604, 1e-12, "eraPvm", "r", status);
6915  vvd(s, 1.214495780149111922, 1e-12, "eraPvm", "s", status);
6916 
6917 }
6918 
6919 static void t_pvmpv(int *status)
6920 /*
6921 ** - - - - - - - -
6922 ** t _ p v m p v
6923 ** - - - - - - - -
6924 **
6925 ** Test eraPvmpv function.
6926 **
6927 ** Returned:
6928 ** status int FALSE = success, TRUE = fail
6929 **
6930 ** Called: eraPvmpv, vvd
6931 **
6932 ** This revision: 2013 August 7
6933 */
6934 {
6935  double a[2][3], b[2][3], amb[2][3];
6936 
6937 
6938  a[0][0] = 2.0;
6939  a[0][1] = 2.0;
6940  a[0][2] = 3.0;
6941 
6942  a[1][0] = 5.0;
6943  a[1][1] = 6.0;
6944  a[1][2] = 3.0;
6945 
6946  b[0][0] = 1.0;
6947  b[0][1] = 3.0;
6948  b[0][2] = 4.0;
6949 
6950  b[1][0] = 3.0;
6951  b[1][1] = 2.0;
6952  b[1][2] = 1.0;
6953 
6954  eraPvmpv(a, b, amb);
6955 
6956  vvd(amb[0][0], 1.0, 1e-12, "eraPvmpv", "11", status);
6957  vvd(amb[0][1], -1.0, 1e-12, "eraPvmpv", "21", status);
6958  vvd(amb[0][2], -1.0, 1e-12, "eraPvmpv", "31", status);
6959 
6960  vvd(amb[1][0], 2.0, 1e-12, "eraPvmpv", "12", status);
6961  vvd(amb[1][1], 4.0, 1e-12, "eraPvmpv", "22", status);
6962  vvd(amb[1][2], 2.0, 1e-12, "eraPvmpv", "32", status);
6963 
6964 }
6965 
6966 static void t_pvppv(int *status)
6967 /*
6968 ** - - - - - - - -
6969 ** t _ p v p p v
6970 ** - - - - - - - -
6971 **
6972 ** Test eraPvppv function.
6973 **
6974 ** Returned:
6975 ** status int FALSE = success, TRUE = fail
6976 **
6977 ** Called: eraPvppv, vvd
6978 **
6979 ** This revision: 2013 August 7
6980 */
6981 {
6982  double a[2][3], b[2][3], apb[2][3];
6983 
6984 
6985  a[0][0] = 2.0;
6986  a[0][1] = 2.0;
6987  a[0][2] = 3.0;
6988 
6989  a[1][0] = 5.0;
6990  a[1][1] = 6.0;
6991  a[1][2] = 3.0;
6992 
6993  b[0][0] = 1.0;
6994  b[0][1] = 3.0;
6995  b[0][2] = 4.0;
6996 
6997  b[1][0] = 3.0;
6998  b[1][1] = 2.0;
6999  b[1][2] = 1.0;
7000 
7001  eraPvppv(a, b, apb);
7002 
7003  vvd(apb[0][0], 3.0, 1e-12, "eraPvppv", "p1", status);
7004  vvd(apb[0][1], 5.0, 1e-12, "eraPvppv", "p2", status);
7005  vvd(apb[0][2], 7.0, 1e-12, "eraPvppv", "p3", status);
7006 
7007  vvd(apb[1][0], 8.0, 1e-12, "eraPvppv", "v1", status);
7008  vvd(apb[1][1], 8.0, 1e-12, "eraPvppv", "v2", status);
7009  vvd(apb[1][2], 4.0, 1e-12, "eraPvppv", "v3", status);
7010 
7011 }
7012 
7013 static void t_pvstar(int *status)
7014 /*
7015 ** - - - - - - - - -
7016 ** t _ p v s t a r
7017 ** - - - - - - - - -
7018 **
7019 ** Test eraPvstar function.
7020 **
7021 ** Returned:
7022 ** status int FALSE = success, TRUE = fail
7023 **
7024 ** Called: eraPvstar, vvd, viv
7025 **
7026 ** This revision: 2013 August 7
7027 */
7028 {
7029  double pv[2][3], ra, dec, pmr, pmd, px, rv;
7030  int j;
7031 
7032 
7033  pv[0][0] = 126668.5912743160601;
7034  pv[0][1] = 2136.792716839935195;
7035  pv[0][2] = -245251.2339876830091;
7036 
7037  pv[1][0] = -0.4051854035740712739e-2;
7038  pv[1][1] = -0.6253919754866173866e-2;
7039  pv[1][2] = 0.1189353719774107189e-1;
7040 
7041  j = eraPvstar(pv, &ra, &dec, &pmr, &pmd, &px, &rv);
7042 
7043  vvd(ra, 0.1686756e-1, 1e-12, "eraPvstar", "ra", status);
7044  vvd(dec, -1.093989828, 1e-12, "eraPvstar", "dec", status);
7045  vvd(pmr, -0.178323516e-4, 1e-16, "eraPvstar", "pmr", status);
7046  vvd(pmd, 0.2336024047e-5, 1e-16, "eraPvstar", "pmd", status);
7047  vvd(px, 0.74723, 1e-12, "eraPvstar", "px", status);
7048  vvd(rv, -21.6, 1e-11, "eraPvstar", "rv", status);
7049 
7050  viv(j, 0, "eraPvstar", "j", status);
7051 
7052 }
7053 
7054 static void t_pvtob(int *status)
7055 /*
7056 ** - - - - - - - -
7057 ** t _ p v t o b
7058 ** - - - - - - - -
7059 **
7060 ** Test eraPvtob function.
7061 **
7062 ** Returned:
7063 ** status int FALSE = success, TRUE = fail
7064 **
7065 ** Called: eraPvtob, vvd
7066 **
7067 ** This revision: 2013 October 2
7068 */
7069 {
7070  double elong, phi, hm, xp, yp, sp, theta, pv[2][3];
7071 
7072 
7073  elong = 2.0;
7074  phi = 0.5;
7075  hm = 3000.0;
7076  xp = 1e-6;
7077  yp = -0.5e-6;
7078  sp = 1e-8;
7079  theta = 5.0;
7080 
7081  eraPvtob(elong, phi, hm, xp, yp, sp, theta, pv);
7082 
7083  vvd(pv[0][0], 4225081.367071159207, 1e-5,
7084  "eraPvtob", "p(1)", status);
7085  vvd(pv[0][1], 3681943.215856198144, 1e-5,
7086  "eraPvtob", "p(2)", status);
7087  vvd(pv[0][2], 3041149.399241260785, 1e-5,
7088  "eraPvtob", "p(3)", status);
7089  vvd(pv[1][0], -268.4915389365998787, 1e-9,
7090  "eraPvtob", "v(1)", status);
7091  vvd(pv[1][1], 308.0977983288903123, 1e-9,
7092  "eraPvtob", "v(2)", status);
7093  vvd(pv[1][2], 0, 0,
7094  "eraPvtob", "v(3)", status);
7095 
7096 }
7097 
7098 static void t_pvu(int *status)
7099 /*
7100 ** - - - - - -
7101 ** t _ p v u
7102 ** - - - - - -
7103 **
7104 ** Test eraPvu function.
7105 **
7106 ** Returned:
7107 ** status int FALSE = success, TRUE = fail
7108 **
7109 ** Called: eraPvu, vvd
7110 **
7111 ** This revision: 2013 August 7
7112 */
7113 {
7114  double pv[2][3], upv[2][3];
7115 
7116 
7117  pv[0][0] = 126668.5912743160734;
7118  pv[0][1] = 2136.792716839935565;
7119  pv[0][2] = -245251.2339876830229;
7120 
7121  pv[1][0] = -0.4051854035740713039e-2;
7122  pv[1][1] = -0.6253919754866175788e-2;
7123  pv[1][2] = 0.1189353719774107615e-1;
7124 
7125  eraPvu(2920.0, pv, upv);
7126 
7127  vvd(upv[0][0], 126656.7598605317105, 1e-12,
7128  "eraPvu", "p1", status);
7129  vvd(upv[0][1], 2118.531271155726332, 1e-12,
7130  "eraPvu", "p2", status);
7131  vvd(upv[0][2], -245216.5048590656190, 1e-12,
7132  "eraPvu", "p3", status);
7133 
7134  vvd(upv[1][0], -0.4051854035740713039e-2, 1e-12,
7135  "eraPvu", "v1", status);
7136  vvd(upv[1][1], -0.6253919754866175788e-2, 1e-12,
7137  "eraPvu", "v2", status);
7138  vvd(upv[1][2], 0.1189353719774107615e-1, 1e-12,
7139  "eraPvu", "v3", status);
7140 
7141 }
7142 
7143 static void t_pvup(int *status)
7144 /*
7145 ** - - - - - - -
7146 ** t _ p v u p
7147 ** - - - - - - -
7148 **
7149 ** Test eraPvup function.
7150 **
7151 ** Returned:
7152 ** status int FALSE = success, TRUE = fail
7153 **
7154 ** Called: eraPvup, vvd
7155 **
7156 ** This revision: 2013 August 7
7157 */
7158 {
7159  double pv[2][3], p[3];
7160 
7161 
7162  pv[0][0] = 126668.5912743160734;
7163  pv[0][1] = 2136.792716839935565;
7164  pv[0][2] = -245251.2339876830229;
7165 
7166  pv[1][0] = -0.4051854035740713039e-2;
7167  pv[1][1] = -0.6253919754866175788e-2;
7168  pv[1][2] = 0.1189353719774107615e-1;
7169 
7170  eraPvup(2920.0, pv, p);
7171 
7172  vvd(p[0], 126656.7598605317105, 1e-12, "eraPvup", "1", status);
7173  vvd(p[1], 2118.531271155726332, 1e-12, "eraPvup", "2", status);
7174  vvd(p[2], -245216.5048590656190, 1e-12, "eraPvup", "3", status);
7175 
7176 }
7177 
7178 static void t_pvxpv(int *status)
7179 /*
7180 ** - - - - - - - -
7181 ** t _ p v x p v
7182 ** - - - - - - - -
7183 **
7184 ** Test eraPvxpv function.
7185 **
7186 ** Returned:
7187 ** status int FALSE = success, TRUE = fail
7188 **
7189 ** Called: eraPvxpv, vvd
7190 **
7191 ** This revision: 2013 August 7
7192 */
7193 {
7194  double a[2][3], b[2][3], axb[2][3];
7195 
7196 
7197  a[0][0] = 2.0;
7198  a[0][1] = 2.0;
7199  a[0][2] = 3.0;
7200 
7201  a[1][0] = 6.0;
7202  a[1][1] = 0.0;
7203  a[1][2] = 4.0;
7204 
7205  b[0][0] = 1.0;
7206  b[0][1] = 3.0;
7207  b[0][2] = 4.0;
7208 
7209  b[1][0] = 0.0;
7210  b[1][1] = 2.0;
7211  b[1][2] = 8.0;
7212 
7213  eraPvxpv(a, b, axb);
7214 
7215  vvd(axb[0][0], -1.0, 1e-12, "eraPvxpv", "p1", status);
7216  vvd(axb[0][1], -5.0, 1e-12, "eraPvxpv", "p2", status);
7217  vvd(axb[0][2], 4.0, 1e-12, "eraPvxpv", "p3", status);
7218 
7219  vvd(axb[1][0], -2.0, 1e-12, "eraPvxpv", "v1", status);
7220  vvd(axb[1][1], -36.0, 1e-12, "eraPvxpv", "v2", status);
7221  vvd(axb[1][2], 22.0, 1e-12, "eraPvxpv", "v3", status);
7222 
7223 }
7224 
7225 static void t_pxp(int *status)
7226 /*
7227 ** - - - - - -
7228 ** t _ p x p
7229 ** - - - - - -
7230 **
7231 ** Test eraPxp function.
7232 **
7233 ** Returned:
7234 ** status int FALSE = success, TRUE = fail
7235 **
7236 ** Called: eraPxp, vvd
7237 **
7238 ** This revision: 2013 August 7
7239 */
7240 {
7241  double a[3], b[3], axb[3];
7242 
7243 
7244  a[0] = 2.0;
7245  a[1] = 2.0;
7246  a[2] = 3.0;
7247 
7248  b[0] = 1.0;
7249  b[1] = 3.0;
7250  b[2] = 4.0;
7251 
7252  eraPxp(a, b, axb);
7253 
7254  vvd(axb[0], -1.0, 1e-12, "eraPxp", "1", status);
7255  vvd(axb[1], -5.0, 1e-12, "eraPxp", "2", status);
7256  vvd(axb[2], 4.0, 1e-12, "eraPxp", "3", status);
7257 
7258 }
7259 
7260 static void t_refco(int *status)
7261 /*
7262 ** - - - - - - - -
7263 ** t _ r e f c o
7264 ** - - - - - - - -
7265 **
7266 ** Test eraRefco function.
7267 **
7268 ** Returned:
7269 ** status int FALSE = success, TRUE = fail
7270 **
7271 ** Called: eraRefco, vvd
7272 **
7273 ** This revision: 2013 October 2
7274 */
7275 {
7276  double phpa, tc, rh, wl, refa, refb;
7277 
7278 
7279  phpa = 800.0;
7280  tc = 10.0;
7281  rh = 0.9;
7282  wl = 0.4;
7283 
7284  eraRefco(phpa, tc, rh, wl, &refa, &refb);
7285 
7286  vvd(refa, 0.2264949956241415009e-3, 1e-15,
7287  "eraRefco", "refa", status);
7288  vvd(refb, -0.2598658261729343970e-6, 1e-18,
7289  "eraRefco", "refb", status);
7290 
7291 }
7292 
7293 static void t_rm2v(int *status)
7294 /*
7295 ** - - - - - - -
7296 ** t _ r m 2 v
7297 ** - - - - - - -
7298 **
7299 ** Test eraRm2v function.
7300 **
7301 ** Returned:
7302 ** status int FALSE = success, TRUE = fail
7303 **
7304 ** Called: eraRm2v, vvd
7305 **
7306 ** This revision: 2013 August 7
7307 */
7308 {
7309  double r[3][3], w[3];
7310 
7311 
7312  r[0][0] = 0.00;
7313  r[0][1] = -0.80;
7314  r[0][2] = -0.60;
7315 
7316  r[1][0] = 0.80;
7317  r[1][1] = -0.36;
7318  r[1][2] = 0.48;
7319 
7320  r[2][0] = 0.60;
7321  r[2][1] = 0.48;
7322  r[2][2] = -0.64;
7323 
7324  eraRm2v(r, w);
7325 
7326  vvd(w[0], 0.0, 1e-12, "eraRm2v", "1", status);
7327  vvd(w[1], 1.413716694115406957, 1e-12, "eraRm2v", "2", status);
7328  vvd(w[2], -1.884955592153875943, 1e-12, "eraRm2v", "3", status);
7329 
7330 }
7331 
7332 static void t_rv2m(int *status)
7333 /*
7334 ** - - - - - - -
7335 ** t _ r v 2 m
7336 ** - - - - - - -
7337 **
7338 ** Test eraRv2m function.
7339 **
7340 ** Returned:
7341 ** status int FALSE = success, TRUE = fail
7342 **
7343 ** Called: eraRv2m, vvd
7344 **
7345 ** This revision: 2013 August 7
7346 */
7347 {
7348  double w[3], r[3][3];
7349 
7350 
7351  w[0] = 0.0;
7352  w[1] = 1.41371669;
7353  w[2] = -1.88495559;
7354 
7355  eraRv2m(w, r);
7356 
7357  vvd(r[0][0], -0.7071067782221119905, 1e-14, "eraRv2m", "11", status);
7358  vvd(r[0][1], -0.5656854276809129651, 1e-14, "eraRv2m", "12", status);
7359  vvd(r[0][2], -0.4242640700104211225, 1e-14, "eraRv2m", "13", status);
7360 
7361  vvd(r[1][0], 0.5656854276809129651, 1e-14, "eraRv2m", "21", status);
7362  vvd(r[1][1], -0.0925483394532274246, 1e-14, "eraRv2m", "22", status);
7363  vvd(r[1][2], -0.8194112531408833269, 1e-14, "eraRv2m", "23", status);
7364 
7365  vvd(r[2][0], 0.4242640700104211225, 1e-14, "eraRv2m", "31", status);
7366  vvd(r[2][1], -0.8194112531408833269, 1e-14, "eraRv2m", "32", status);
7367  vvd(r[2][2], 0.3854415612311154341, 1e-14, "eraRv2m", "33", status);
7368 
7369 }
7370 
7371 static void t_rx(int *status)
7372 /*
7373 ** - - - - -
7374 ** t _ r x
7375 ** - - - - -
7376 **
7377 ** Test eraRx function.
7378 **
7379 ** Returned:
7380 ** status int FALSE = success, TRUE = fail
7381 **
7382 ** Called: eraRx, vvd
7383 **
7384 ** This revision: 2013 August 7
7385 */
7386 {
7387  double phi, r[3][3];
7388 
7389 
7390  phi = 0.3456789;
7391 
7392  r[0][0] = 2.0;
7393  r[0][1] = 3.0;
7394  r[0][2] = 2.0;
7395 
7396  r[1][0] = 3.0;
7397  r[1][1] = 2.0;
7398  r[1][2] = 3.0;
7399 
7400  r[2][0] = 3.0;
7401  r[2][1] = 4.0;
7402  r[2][2] = 5.0;
7403 
7404  eraRx(phi, r);
7405 
7406  vvd(r[0][0], 2.0, 0.0, "eraRx", "11", status);
7407  vvd(r[0][1], 3.0, 0.0, "eraRx", "12", status);
7408  vvd(r[0][2], 2.0, 0.0, "eraRx", "13", status);
7409 
7410  vvd(r[1][0], 3.839043388235612460, 1e-12, "eraRx", "21", status);
7411  vvd(r[1][1], 3.237033249594111899, 1e-12, "eraRx", "22", status);
7412  vvd(r[1][2], 4.516714379005982719, 1e-12, "eraRx", "23", status);
7413 
7414  vvd(r[2][0], 1.806030415924501684, 1e-12, "eraRx", "31", status);
7415  vvd(r[2][1], 3.085711545336372503, 1e-12, "eraRx", "32", status);
7416  vvd(r[2][2], 3.687721683977873065, 1e-12, "eraRx", "33", status);
7417 
7418 }
7419 
7420 static void t_rxp(int *status)
7421 /*
7422 ** - - - - - -
7423 ** t _ r x p
7424 ** - - - - - -
7425 **
7426 ** Test eraRxp function.
7427 **
7428 ** Returned:
7429 ** status int FALSE = success, TRUE = fail
7430 **
7431 ** Called: eraRxp, vvd
7432 **
7433 ** This revision: 2013 August 7
7434 */
7435 {
7436  double r[3][3], p[3], rp[3];
7437 
7438 
7439  r[0][0] = 2.0;
7440  r[0][1] = 3.0;
7441  r[0][2] = 2.0;
7442 
7443  r[1][0] = 3.0;
7444  r[1][1] = 2.0;
7445  r[1][2] = 3.0;
7446 
7447  r[2][0] = 3.0;
7448  r[2][1] = 4.0;
7449  r[2][2] = 5.0;
7450 
7451  p[0] = 0.2;
7452  p[1] = 1.5;
7453  p[2] = 0.1;
7454 
7455  eraRxp(r, p, rp);
7456 
7457  vvd(rp[0], 5.1, 1e-12, "eraRxp", "1", status);
7458  vvd(rp[1], 3.9, 1e-12, "eraRxp", "2", status);
7459  vvd(rp[2], 7.1, 1e-12, "eraRxp", "3", status);
7460 
7461 }
7462 
7463 static void t_rxpv(int *status)
7464 /*
7465 ** - - - - - - -
7466 ** t _ r x p v
7467 ** - - - - - - -
7468 **
7469 ** Test eraRxpv function.
7470 **
7471 ** Returned:
7472 ** status int FALSE = success, TRUE = fail
7473 **
7474 ** Called: eraRxpv, vvd
7475 **
7476 ** This revision: 2013 August 7
7477 */
7478 {
7479  double r[3][3], pv[2][3], rpv[2][3];
7480 
7481 
7482  r[0][0] = 2.0;
7483  r[0][1] = 3.0;
7484  r[0][2] = 2.0;
7485 
7486  r[1][0] = 3.0;
7487  r[1][1] = 2.0;
7488  r[1][2] = 3.0;
7489 
7490  r[2][0] = 3.0;
7491  r[2][1] = 4.0;
7492  r[2][2] = 5.0;
7493 
7494  pv[0][0] = 0.2;
7495  pv[0][1] = 1.5;
7496  pv[0][2] = 0.1;
7497 
7498  pv[1][0] = 1.5;
7499  pv[1][1] = 0.2;
7500  pv[1][2] = 0.1;
7501 
7502  eraRxpv(r, pv, rpv);
7503 
7504  vvd(rpv[0][0], 5.1, 1e-12, "eraRxpv", "11", status);
7505  vvd(rpv[1][0], 3.8, 1e-12, "eraRxpv", "12", status);
7506 
7507  vvd(rpv[0][1], 3.9, 1e-12, "eraRxpv", "21", status);
7508  vvd(rpv[1][1], 5.2, 1e-12, "eraRxpv", "22", status);
7509 
7510  vvd(rpv[0][2], 7.1, 1e-12, "eraRxpv", "31", status);
7511  vvd(rpv[1][2], 5.8, 1e-12, "eraRxpv", "32", status);
7512 
7513 }
7514 
7515 static void t_rxr(int *status)
7516 /*
7517 ** - - - - - -
7518 ** t _ r x r
7519 ** - - - - - -
7520 **
7521 ** Test eraRxr function.
7522 **
7523 ** Returned:
7524 ** status int FALSE = success, TRUE = fail
7525 **
7526 ** Called: eraRxr, vvd
7527 **
7528 ** This revision: 2013 August 7
7529 */
7530 {
7531  double a[3][3], b[3][3], atb[3][3];
7532 
7533 
7534  a[0][0] = 2.0;
7535  a[0][1] = 3.0;
7536  a[0][2] = 2.0;
7537 
7538  a[1][0] = 3.0;
7539  a[1][1] = 2.0;
7540  a[1][2] = 3.0;
7541 
7542  a[2][0] = 3.0;
7543  a[2][1] = 4.0;
7544  a[2][2] = 5.0;
7545 
7546  b[0][0] = 1.0;
7547  b[0][1] = 2.0;
7548  b[0][2] = 2.0;
7549 
7550  b[1][0] = 4.0;
7551  b[1][1] = 1.0;
7552  b[1][2] = 1.0;
7553 
7554  b[2][0] = 3.0;
7555  b[2][1] = 0.0;
7556  b[2][2] = 1.0;
7557 
7558  eraRxr(a, b, atb);
7559 
7560  vvd(atb[0][0], 20.0, 1e-12, "eraRxr", "11", status);
7561  vvd(atb[0][1], 7.0, 1e-12, "eraRxr", "12", status);
7562  vvd(atb[0][2], 9.0, 1e-12, "eraRxr", "13", status);
7563 
7564  vvd(atb[1][0], 20.0, 1e-12, "eraRxr", "21", status);
7565  vvd(atb[1][1], 8.0, 1e-12, "eraRxr", "22", status);
7566  vvd(atb[1][2], 11.0, 1e-12, "eraRxr", "23", status);
7567 
7568  vvd(atb[2][0], 34.0, 1e-12, "eraRxr", "31", status);
7569  vvd(atb[2][1], 10.0, 1e-12, "eraRxr", "32", status);
7570  vvd(atb[2][2], 15.0, 1e-12, "eraRxr", "33", status);
7571 
7572 }
7573 
7574 static void t_ry(int *status)
7575 /*
7576 ** - - - - -
7577 ** t _ r y
7578 ** - - - - -
7579 **
7580 ** Test eraRy function.
7581 **
7582 ** Returned:
7583 ** status int FALSE = success, TRUE = fail
7584 **
7585 ** Called: eraRy, vvd
7586 **
7587 ** This revision: 2013 August 7
7588 */
7589 {
7590  double theta, r[3][3];
7591 
7592 
7593  theta = 0.3456789;
7594 
7595  r[0][0] = 2.0;
7596  r[0][1] = 3.0;
7597  r[0][2] = 2.0;
7598 
7599  r[1][0] = 3.0;
7600  r[1][1] = 2.0;
7601  r[1][2] = 3.0;
7602 
7603  r[2][0] = 3.0;
7604  r[2][1] = 4.0;
7605  r[2][2] = 5.0;
7606 
7607  eraRy(theta, r);
7608 
7609  vvd(r[0][0], 0.8651847818978159930, 1e-12, "eraRy", "11", status);
7610  vvd(r[0][1], 1.467194920539316554, 1e-12, "eraRy", "12", status);
7611  vvd(r[0][2], 0.1875137911274457342, 1e-12, "eraRy", "13", status);
7612 
7613  vvd(r[1][0], 3, 1e-12, "eraRy", "21", status);
7614  vvd(r[1][1], 2, 1e-12, "eraRy", "22", status);
7615  vvd(r[1][2], 3, 1e-12, "eraRy", "23", status);
7616 
7617  vvd(r[2][0], 3.500207892850427330, 1e-12, "eraRy", "31", status);
7618  vvd(r[2][1], 4.779889022262298150, 1e-12, "eraRy", "32", status);
7619  vvd(r[2][2], 5.381899160903798712, 1e-12, "eraRy", "33", status);
7620 
7621 }
7622 
7623 static void t_rz(int *status)
7624 /*
7625 ** - - - - -
7626 ** t _ r z
7627 ** - - - - -
7628 **
7629 ** Test eraRz function.
7630 **
7631 ** Returned:
7632 ** status int FALSE = success, TRUE = fail
7633 **
7634 ** Called: eraRz, vvd
7635 **
7636 ** This revision: 2013 August 7
7637 */
7638 {
7639  double psi, r[3][3];
7640 
7641 
7642  psi = 0.3456789;
7643 
7644  r[0][0] = 2.0;
7645  r[0][1] = 3.0;
7646  r[0][2] = 2.0;
7647 
7648  r[1][0] = 3.0;
7649  r[1][1] = 2.0;
7650  r[1][2] = 3.0;
7651 
7652  r[2][0] = 3.0;
7653  r[2][1] = 4.0;
7654  r[2][2] = 5.0;
7655 
7656  eraRz(psi, r);
7657 
7658  vvd(r[0][0], 2.898197754208926769, 1e-12, "eraRz", "11", status);
7659  vvd(r[0][1], 3.500207892850427330, 1e-12, "eraRz", "12", status);
7660  vvd(r[0][2], 2.898197754208926769, 1e-12, "eraRz", "13", status);
7661 
7662  vvd(r[1][0], 2.144865911309686813, 1e-12, "eraRz", "21", status);
7663  vvd(r[1][1], 0.865184781897815993, 1e-12, "eraRz", "22", status);
7664  vvd(r[1][2], 2.144865911309686813, 1e-12, "eraRz", "23", status);
7665 
7666  vvd(r[2][0], 3.0, 1e-12, "eraRz", "31", status);
7667  vvd(r[2][1], 4.0, 1e-12, "eraRz", "32", status);
7668  vvd(r[2][2], 5.0, 1e-12, "eraRz", "33", status);
7669 
7670 }
7671 
7672 static void t_s00a(int *status)
7673 /*
7674 ** - - - - - - -
7675 ** t _ s 0 0 a
7676 ** - - - - - - -
7677 **
7678 ** Test eraS00a function.
7679 **
7680 ** Returned:
7681 ** status int FALSE = success, TRUE = fail
7682 **
7683 ** Called: eraS00a, vvd
7684 **
7685 ** This revision: 2013 August 7
7686 */
7687 {
7688  double s;
7689 
7690 
7691  s = eraS00a(2400000.5, 52541.0);
7692 
7693  vvd(s, -0.1340684448919163584e-7, 1e-18, "eraS00a", "", status);
7694 
7695 }
7696 
7697 static void t_s00b(int *status)
7698 /*
7699 ** - - - - - - -
7700 ** t _ s 0 0 b
7701 ** - - - - - - -
7702 **
7703 ** Test eraS00b function.
7704 **
7705 ** Returned:
7706 ** status int FALSE = success, TRUE = fail
7707 **
7708 ** Called: eraS00b, vvd
7709 **
7710 ** This revision: 2013 August 7
7711 */
7712 {
7713  double s;
7714 
7715 
7716  s = eraS00b(2400000.5, 52541.0);
7717 
7718  vvd(s, -0.1340695782951026584e-7, 1e-18, "eraS00b", "", status);
7719 
7720 }
7721 
7722 static void t_s00(int *status)
7723 /*
7724 ** - - - - - -
7725 ** t _ s 0 0
7726 ** - - - - - -
7727 **
7728 ** Test eraS00 function.
7729 **
7730 ** Returned:
7731 ** status int FALSE = success, TRUE = fail
7732 **
7733 ** Called: eraS00, vvd
7734 **
7735 ** This revision: 2013 August 7
7736 */
7737 {
7738  double x, y, s;
7739 
7740 
7741  x = 0.5791308486706011000e-3;
7742  y = 0.4020579816732961219e-4;
7743 
7744  s = eraS00(2400000.5, 53736.0, x, y);
7745 
7746  vvd(s, -0.1220036263270905693e-7, 1e-18, "eraS00", "", status);
7747 
7748 }
7749 
7750 static void t_s06a(int *status)
7751 /*
7752 ** - - - - - - -
7753 ** t _ s 0 6 a
7754 ** - - - - - - -
7755 **
7756 ** Test eraS06a function.
7757 **
7758 ** Returned:
7759 ** status int FALSE = success, TRUE = fail
7760 **
7761 ** Called: eraS06a, vvd
7762 **
7763 ** This revision: 2013 August 7
7764 */
7765 {
7766  double s;
7767 
7768 
7769  s = eraS06a(2400000.5, 52541.0);
7770 
7771  vvd(s, -0.1340680437291812383e-7, 1e-18, "eraS06a", "", status);
7772 
7773 }
7774 
7775 static void t_s06(int *status)
7776 /*
7777 ** - - - - - -
7778 ** t _ s 0 6
7779 ** - - - - - -
7780 **
7781 ** Test eraS06 function.
7782 **
7783 ** Returned:
7784 ** status int FALSE = success, TRUE = fail
7785 **
7786 ** Called: eraS06, vvd
7787 **
7788 ** This revision: 2013 August 7
7789 */
7790 {
7791  double x, y, s;
7792 
7793 
7794  x = 0.5791308486706011000e-3;
7795  y = 0.4020579816732961219e-4;
7796 
7797  s = eraS06(2400000.5, 53736.0, x, y);
7798 
7799  vvd(s, -0.1220032213076463117e-7, 1e-18, "eraS06", "", status);
7800 
7801 }
7802 
7803 static void t_s2c(int *status)
7804 /*
7805 ** - - - - - -
7806 ** t _ s 2 c
7807 ** - - - - - -
7808 **
7809 ** Test eraS2c function.
7810 **
7811 ** Returned:
7812 ** status int FALSE = success, TRUE = fail
7813 **
7814 ** Called: eraS2c, vvd
7815 **
7816 ** This revision: 2013 August 7
7817 */
7818 {
7819  double c[3];
7820 
7821 
7822  eraS2c(3.0123, -0.999, c);
7823 
7824  vvd(c[0], -0.5366267667260523906, 1e-12, "eraS2c", "1", status);
7825  vvd(c[1], 0.0697711109765145365, 1e-12, "eraS2c", "2", status);
7826  vvd(c[2], -0.8409302618566214041, 1e-12, "eraS2c", "3", status);
7827 
7828 }
7829 
7830 static void t_s2p(int *status)
7831 /*
7832 ** - - - - - -
7833 ** t _ s 2 p
7834 ** - - - - - -
7835 **
7836 ** Test eraS2p function.
7837 **
7838 ** Returned:
7839 ** status int FALSE = success, TRUE = fail
7840 **
7841 ** Called: eraS2p, vvd
7842 **
7843 ** This revision: 2013 August 7
7844 */
7845 {
7846  double p[3];
7847 
7848 
7849  eraS2p(-3.21, 0.123, 0.456, p);
7850 
7851  vvd(p[0], -0.4514964673880165228, 1e-12, "eraS2p", "x", status);
7852  vvd(p[1], 0.0309339427734258688, 1e-12, "eraS2p", "y", status);
7853  vvd(p[2], 0.0559466810510877933, 1e-12, "eraS2p", "z", status);
7854 
7855 }
7856 
7857 static void t_s2pv(int *status)
7858 /*
7859 ** - - - - - - -
7860 ** t _ s 2 p v
7861 ** - - - - - - -
7862 **
7863 ** Test eraS2pv function.
7864 **
7865 ** Returned:
7866 ** status int FALSE = success, TRUE = fail
7867 **
7868 ** Called: eraS2pv, vvd
7869 **
7870 ** This revision: 2013 August 7
7871 */
7872 {
7873  double pv[2][3];
7874 
7875 
7876  eraS2pv(-3.21, 0.123, 0.456, -7.8e-6, 9.01e-6, -1.23e-5, pv);
7877 
7878  vvd(pv[0][0], -0.4514964673880165228, 1e-12, "eraS2pv", "x", status);
7879  vvd(pv[0][1], 0.0309339427734258688, 1e-12, "eraS2pv", "y", status);
7880  vvd(pv[0][2], 0.0559466810510877933, 1e-12, "eraS2pv", "z", status);
7881 
7882  vvd(pv[1][0], 0.1292270850663260170e-4, 1e-16,
7883  "eraS2pv", "vx", status);
7884  vvd(pv[1][1], 0.2652814182060691422e-5, 1e-16,
7885  "eraS2pv", "vy", status);
7886  vvd(pv[1][2], 0.2568431853930292259e-5, 1e-16,
7887  "eraS2pv", "vz", status);
7888 
7889 }
7890 
7891 static void t_s2xpv(int *status)
7892 /*
7893 ** - - - - - - - -
7894 ** t _ s 2 x p v
7895 ** - - - - - - - -
7896 **
7897 ** Test eraS2xpv function.
7898 **
7899 ** Returned:
7900 ** status int FALSE = success, TRUE = fail
7901 **
7902 ** Called: eraS2xpv, vvd
7903 **
7904 ** This revision: 2013 August 7
7905 */
7906 {
7907  double s1, s2, pv[2][3], spv[2][3];
7908 
7909 
7910  s1 = 2.0;
7911  s2 = 3.0;
7912 
7913  pv[0][0] = 0.3;
7914  pv[0][1] = 1.2;
7915  pv[0][2] = -2.5;
7916 
7917  pv[1][0] = 0.5;
7918  pv[1][1] = 2.3;
7919  pv[1][2] = -0.4;
7920 
7921  eraS2xpv(s1, s2, pv, spv);
7922 
7923  vvd(spv[0][0], 0.6, 1e-12, "eraS2xpv", "p1", status);
7924  vvd(spv[0][1], 2.4, 1e-12, "eraS2xpv", "p2", status);
7925  vvd(spv[0][2], -5.0, 1e-12, "eraS2xpv", "p3", status);
7926 
7927  vvd(spv[1][0], 1.5, 1e-12, "eraS2xpv", "v1", status);
7928  vvd(spv[1][1], 6.9, 1e-12, "eraS2xpv", "v2", status);
7929  vvd(spv[1][2], -1.2, 1e-12, "eraS2xpv", "v3", status);
7930 
7931 }
7932 
7933 static void t_sepp(int *status)
7934 /*
7935 ** - - - - - - -
7936 ** t _ s e p p
7937 ** - - - - - - -
7938 **
7939 ** Test eraSepp function.
7940 **
7941 ** Returned:
7942 ** status int FALSE = success, TRUE = fail
7943 **
7944 ** Called: eraSepp, vvd
7945 **
7946 ** This revision: 2013 August 7
7947 */
7948 {
7949  double a[3], b[3], s;
7950 
7951 
7952  a[0] = 1.0;
7953  a[1] = 0.1;
7954  a[2] = 0.2;
7955 
7956  b[0] = -3.0;
7957  b[1] = 1e-3;
7958  b[2] = 0.2;
7959 
7960  s = eraSepp(a, b);
7961 
7962  vvd(s, 2.860391919024660768, 1e-12, "eraSepp", "", status);
7963 
7964 }
7965 
7966 static void t_seps(int *status)
7967 /*
7968 ** - - - - - - -
7969 ** t _ s e p s
7970 ** - - - - - - -
7971 **
7972 ** Test eraSeps function.
7973 **
7974 ** Returned:
7975 ** status int FALSE = success, TRUE = fail
7976 **
7977 ** Called: eraSeps, vvd
7978 **
7979 ** This revision: 2013 August 7
7980 */
7981 {
7982  double al, ap, bl, bp, s;
7983 
7984 
7985  al = 1.0;
7986  ap = 0.1;
7987 
7988  bl = 0.2;
7989  bp = -3.0;
7990 
7991  s = eraSeps(al, ap, bl, bp);
7992 
7993  vvd(s, 2.346722016996998842, 1e-14, "eraSeps", "", status);
7994 
7995 }
7996 
7997 static void t_sp00(int *status)
7998 /*
7999 ** - - - - - - -
8000 ** t _ s p 0 0
8001 ** - - - - - - -
8002 **
8003 ** Test eraSp00 function.
8004 **
8005 ** Returned:
8006 ** status int FALSE = success, TRUE = fail
8007 **
8008 ** Called: eraSp00, vvd
8009 **
8010 ** This revision: 2013 August 7
8011 */
8012 {
8013  vvd(eraSp00(2400000.5, 52541.0),
8014  -0.6216698469981019309e-11, 1e-12, "eraSp00", "", status);
8015 
8016 }
8017 
8018 static void t_starpm(int *status)
8019 /*
8020 ** - - - - - - - - -
8021 ** t _ s t a r p m
8022 ** - - - - - - - - -
8023 **
8024 ** Test eraStarpm function.
8025 **
8026 ** Returned:
8027 ** status int FALSE = success, TRUE = fail
8028 **
8029 ** Called: eraStarpm, vvd, viv
8030 **
8031 ** This revision: 2013 August 7
8032 */
8033 {
8034  double ra1, dec1, pmr1, pmd1, px1, rv1;
8035  double ra2, dec2, pmr2, pmd2, px2, rv2;
8036  int j;
8037 
8038 
8039  ra1 = 0.01686756;
8040  dec1 = -1.093989828;
8041  pmr1 = -1.78323516e-5;
8042  pmd1 = 2.336024047e-6;
8043  px1 = 0.74723;
8044  rv1 = -21.6;
8045 
8046  j = eraStarpm(ra1, dec1, pmr1, pmd1, px1, rv1,
8047  2400000.5, 50083.0, 2400000.5, 53736.0,
8048  &ra2, &dec2, &pmr2, &pmd2, &px2, &rv2);
8049 
8050  vvd(ra2, 0.01668919069414242368, 1e-13,
8051  "eraStarpm", "ra", status);
8052  vvd(dec2, -1.093966454217127879, 1e-13,
8053  "eraStarpm", "dec", status);
8054  vvd(pmr2, -0.1783662682155932702e-4, 1e-17,
8055  "eraStarpm", "pmr", status);
8056  vvd(pmd2, 0.2338092915987603664e-5, 1e-17,
8057  "eraStarpm", "pmd", status);
8058  vvd(px2, 0.7473533835323493644, 1e-13,
8059  "eraStarpm", "px", status);
8060  vvd(rv2, -21.59905170476860786, 1e-11,
8061  "eraStarpm", "rv", status);
8062 
8063  viv(j, 0, "eraStarpm", "j", status);
8064 
8065 }
8066 
8067 static void t_starpv(int *status)
8068 /*
8069 ** - - - - - - - - -
8070 ** t _ s t a r p v
8071 ** - - - - - - - - -
8072 **
8073 ** Test eraStarpv function.
8074 **
8075 ** Returned:
8076 ** status int FALSE = success, TRUE = fail
8077 **
8078 ** Called: eraStarpv, vvd, viv
8079 **
8080 ** This revision: 2013 August 7
8081 */
8082 {
8083  double ra, dec, pmr, pmd, px, rv, pv[2][3];
8084  int j;
8085 
8086 
8087  ra = 0.01686756;
8088  dec = -1.093989828;
8089  pmr = -1.78323516e-5;
8090  pmd = 2.336024047e-6;
8091  px = 0.74723;
8092  rv = -21.6;
8093 
8094  j = eraStarpv(ra, dec, pmr, pmd, px, rv, pv);
8095 
8096  vvd(pv[0][0], 126668.5912743160601, 1e-10,
8097  "eraStarpv", "11", status);
8098  vvd(pv[0][1], 2136.792716839935195, 1e-12,
8099  "eraStarpv", "12", status);
8100  vvd(pv[0][2], -245251.2339876830091, 1e-10,
8101  "eraStarpv", "13", status);
8102 
8103  vvd(pv[1][0], -0.4051854035740712739e-2, 1e-13,
8104  "eraStarpv", "21", status);
8105  vvd(pv[1][1], -0.6253919754866173866e-2, 1e-15,
8106  "eraStarpv", "22", status);
8107  vvd(pv[1][2], 0.1189353719774107189e-1, 1e-13,
8108  "eraStarpv", "23", status);
8109 
8110  viv(j, 0, "eraStarpv", "j", status);
8111 
8112 }
8113 
8114 static void t_sxp(int *status)
8115 /*
8116 ** - - - - - -
8117 ** t _ s x p
8118 ** - - - - - -
8119 **
8120 ** Test eraSxp function.
8121 **
8122 ** Returned:
8123 ** status int FALSE = success, TRUE = fail
8124 **
8125 ** Called: eraSxp, vvd
8126 **
8127 ** This revision: 2013 August 7
8128 */
8129 {
8130  double s, p[3], sp[3];
8131 
8132 
8133  s = 2.0;
8134 
8135  p[0] = 0.3;
8136  p[1] = 1.2;
8137  p[2] = -2.5;
8138 
8139  eraSxp(s, p, sp);
8140 
8141  vvd(sp[0], 0.6, 0.0, "eraSxp", "1", status);
8142  vvd(sp[1], 2.4, 0.0, "eraSxp", "2", status);
8143  vvd(sp[2], -5.0, 0.0, "eraSxp", "3", status);
8144 
8145 }
8146 
8147 
8148 static void t_sxpv(int *status)
8149 /*
8150 ** - - - - - - -
8151 ** t _ s x p v
8152 ** - - - - - - -
8153 **
8154 ** Test eraSxpv function.
8155 **
8156 ** Returned:
8157 ** status int FALSE = success, TRUE = fail
8158 **
8159 ** Called: eraSxpv, vvd
8160 **
8161 ** This revision: 2013 August 7
8162 */
8163 {
8164  double s, pv[2][3], spv[2][3];
8165 
8166 
8167  s = 2.0;
8168 
8169  pv[0][0] = 0.3;
8170  pv[0][1] = 1.2;
8171  pv[0][2] = -2.5;
8172 
8173  pv[1][0] = 0.5;
8174  pv[1][1] = 3.2;
8175  pv[1][2] = -0.7;
8176 
8177  eraSxpv(s, pv, spv);
8178 
8179  vvd(spv[0][0], 0.6, 0.0, "eraSxpv", "p1", status);
8180  vvd(spv[0][1], 2.4, 0.0, "eraSxpv", "p2", status);
8181  vvd(spv[0][2], -5.0, 0.0, "eraSxpv", "p3", status);
8182 
8183  vvd(spv[1][0], 1.0, 0.0, "eraSxpv", "v1", status);
8184  vvd(spv[1][1], 6.4, 0.0, "eraSxpv", "v2", status);
8185  vvd(spv[1][2], -1.4, 0.0, "eraSxpv", "v3", status);
8186 
8187 }
8188 
8189 static void t_taitt(int *status)
8190 /*
8191 ** - - - - - - - -
8192 ** t _ t a i t t
8193 ** - - - - - - - -
8194 **
8195 ** Test eraTaitt function.
8196 **
8197 ** Returned:
8198 ** status int FALSE = success, TRUE = fail
8199 **
8200 ** Called: eraTaitt, vvd, viv
8201 **
8202 ** This revision: 2013 August 7
8203 */
8204 {
8205  double t1, t2;
8206  int j;
8207 
8208 
8209  j = eraTaitt(2453750.5, 0.892482639, &t1, &t2);
8210 
8211  vvd(t1, 2453750.5, 1e-6, "eraTaitt", "t1", status);
8212  vvd(t2, 0.892855139, 1e-12, "eraTaitt", "t2", status);
8213  viv(j, 0, "eraTaitt", "j", status);
8214 
8215 }
8216 
8217 static void t_taiut1(int *status)
8218 /*
8219 ** - - - - - - - - -
8220 ** t _ t a i u t 1
8221 ** - - - - - - - - -
8222 **
8223 ** Test eraTaiut1 function.
8224 **
8225 ** Returned:
8226 ** status int FALSE = success, TRUE = fail
8227 **
8228 ** Called: eraTaiut1, vvd, viv
8229 **
8230 ** This revision: 2013 August 7
8231 */
8232 {
8233  double u1, u2;
8234  int j;
8235 
8236 
8237  j = eraTaiut1(2453750.5, 0.892482639, -32.6659, &u1, &u2);
8238 
8239  vvd(u1, 2453750.5, 1e-6, "eraTaiut1", "u1", status);
8240  vvd(u2, 0.8921045614537037037, 1e-12, "eraTaiut1", "u2", status);
8241  viv(j, 0, "eraTaiut1", "j", status);
8242 
8243 }
8244 
8245 static void t_taiutc(int *status)
8246 /*
8247 ** - - - - - - - - -
8248 ** t _ t a i u t c
8249 ** - - - - - - - - -
8250 **
8251 ** Test eraTaiutc function.
8252 **
8253 ** Returned:
8254 ** status LOGICAL TRUE = success, FALSE = fail
8255 **
8256 ** Called: eraTaiutc, vvd, viv
8257 **
8258 ** This revision: 2013 October 3
8259 */
8260 {
8261  double u1, u2;
8262  int j;
8263 
8264 
8265  j = eraTaiutc(2453750.5, 0.892482639, &u1, &u2);
8266 
8267  vvd(u1, 2453750.5, 1e-6, "eraTaiutc", "u1", status);
8268  vvd(u2, 0.8921006945555555556, 1e-12, "eraTaiutc", "u2", status);
8269  viv(j, 0, "eraTaiutc", "j", status);
8270 
8271 }
8272 
8273 static void t_tcbtdb(int *status)
8274 /*
8275 ** - - - - - - - - -
8276 ** t _ t c b t d b
8277 ** - - - - - - - - -
8278 **
8279 ** Test eraTcbtdb function.
8280 **
8281 ** Returned:
8282 ** status int FALSE = success, TRUE = fail
8283 **
8284 ** Called: eraTcbtdb, vvd, viv
8285 **
8286 ** This revision: 2013 August 7
8287 */
8288 {
8289  double b1, b2;
8290  int j;
8291 
8292 
8293  j = eraTcbtdb(2453750.5, 0.893019599, &b1, &b2);
8294 
8295  vvd(b1, 2453750.5, 1e-6, "eraTcbtdb", "b1", status);
8296  vvd(b2, 0.8928551362746343397, 1e-12, "eraTcbtdb", "b2", status);
8297  viv(j, 0, "eraTcbtdb", "j", status);
8298 
8299 }
8300 
8301 static void t_tcgtt(int *status)
8302 /*
8303 ** - - - - - - - -
8304 ** t _ t c g t t
8305 ** - - - - - - - -
8306 **
8307 ** Test eraTcgtt function.
8308 **
8309 ** Returned:
8310 ** status int FALSE = success, TRUE = fail
8311 **
8312 ** Called: eraTcgtt, vvd, viv
8313 **
8314 ** This revision: 2013 August 7
8315 */
8316 {
8317  double t1, t2;
8318  int j;
8319 
8320 
8321  j = eraTcgtt(2453750.5, 0.892862531, &t1, &t2);
8322 
8323  vvd(t1, 2453750.5, 1e-6, "eraTcgtt", "t1", status);
8324  vvd(t2, 0.8928551387488816828, 1e-12, "eraTcgtt", "t2", status);
8325  viv(j, 0, "eraTcgtt", "j", status);
8326 
8327 }
8328 
8329 static void t_tdbtcb(int *status)
8330 /*
8331 ** - - - - - - - - -
8332 ** t _ t d b t c b
8333 ** - - - - - - - - -
8334 **
8335 ** Test eraTdbtcb function.
8336 **
8337 ** Returned:
8338 ** status int FALSE = success, TRUE = fail
8339 **
8340 ** Called: eraTdbtcb, vvd, viv
8341 **
8342 ** This revision: 2013 August 7
8343 */
8344 {
8345  double b1, b2;
8346  int j;
8347 
8348 
8349  j = eraTdbtcb(2453750.5, 0.892855137, &b1, &b2);
8350 
8351  vvd( b1, 2453750.5, 1e-6, "eraTdbtcb", "b1", status);
8352  vvd( b2, 0.8930195997253656716, 1e-12, "eraTdbtcb", "b2", status);
8353  viv(j, 0, "eraTdbtcb", "j", status);
8354 
8355 }
8356 
8357 static void t_tdbtt(int *status)
8358 /*
8359 ** - - - - - - - -
8360 ** t _ t d b t t
8361 ** - - - - - - - -
8362 **
8363 ** Test eraTdbtt function.
8364 **
8365 ** Returned:
8366 ** status int FALSE = success, TRUE = fail
8367 **
8368 ** Called: eraTdbtt, vvd, viv
8369 **
8370 ** This revision: 2013 August 7
8371 */
8372 {
8373  double t1, t2;
8374  int j;
8375 
8376 
8377  j = eraTdbtt(2453750.5, 0.892855137, -0.000201, &t1, &t2);
8378 
8379  vvd(t1, 2453750.5, 1e-6, "eraTdbtt", "t1", status);
8380  vvd(t2, 0.8928551393263888889, 1e-12, "eraTdbtt", "t2", status);
8381  viv(j, 0, "eraTdbtt", "j", status);
8382 
8383 }
8384 
8385 static void t_tf2a(int *status)
8386 /*
8387 ** - - - - - - -
8388 ** t _ t f 2 a
8389 ** - - - - - - -
8390 **
8391 ** Test eraTf2a function.
8392 **
8393 ** Returned:
8394 ** status int FALSE = success, TRUE = fail
8395 **
8396 ** Called: eraTf2a, vvd, viv
8397 **
8398 ** This revision: 2013 August 7
8399 */
8400 {
8401  double a;
8402  int j;
8403 
8404 
8405  j = eraTf2a('+', 4, 58, 20.2, &a);
8406 
8407  vvd(a, 1.301739278189537429, 1e-12, "eraTf2a", "a", status);
8408  viv(j, 0, "eraTf2a", "j", status);
8409 
8410 }
8411 
8412 static void t_tf2d(int *status)
8413 /*
8414 ** - - - - - - -
8415 ** t _ t f 2 d
8416 ** - - - - - - -
8417 **
8418 ** Test eraTf2d function.
8419 **
8420 ** Returned:
8421 ** status int FALSE = success, TRUE = fail
8422 **
8423 ** Called: eraTf2d, vvd, viv
8424 **
8425 ** This revision: 2013 August 7
8426 */
8427 {
8428  double d;
8429  int j;
8430 
8431 
8432  j = eraTf2d(' ', 23, 55, 10.9, &d);
8433 
8434  vvd(d, 0.9966539351851851852, 1e-12, "eraTf2d", "d", status);
8435  viv(j, 0, "eraTf2d", "j", status);
8436 
8437 }
8438 
8439 static void t_tr(int *status)
8440 /*
8441 ** - - - - -
8442 ** t _ t r
8443 ** - - - - -
8444 **
8445 ** Test eraTr function.
8446 **
8447 ** Returned:
8448 ** status int FALSE = success, TRUE = fail
8449 **
8450 ** Called: eraTr, vvd
8451 **
8452 ** This revision: 2013 August 7
8453 */
8454 {
8455  double r[3][3], rt[3][3];
8456 
8457 
8458  r[0][0] = 2.0;
8459  r[0][1] = 3.0;
8460  r[0][2] = 2.0;
8461 
8462  r[1][0] = 3.0;
8463  r[1][1] = 2.0;
8464  r[1][2] = 3.0;
8465 
8466  r[2][0] = 3.0;
8467  r[2][1] = 4.0;
8468  r[2][2] = 5.0;
8469 
8470  eraTr(r, rt);
8471 
8472  vvd(rt[0][0], 2.0, 0.0, "eraTr", "11", status);
8473  vvd(rt[0][1], 3.0, 0.0, "eraTr", "12", status);
8474  vvd(rt[0][2], 3.0, 0.0, "eraTr", "13", status);
8475 
8476  vvd(rt[1][0], 3.0, 0.0, "eraTr", "21", status);
8477  vvd(rt[1][1], 2.0, 0.0, "eraTr", "22", status);
8478  vvd(rt[1][2], 4.0, 0.0, "eraTr", "23", status);
8479 
8480  vvd(rt[2][0], 2.0, 0.0, "eraTr", "31", status);
8481  vvd(rt[2][1], 3.0, 0.0, "eraTr", "32", status);
8482  vvd(rt[2][2], 5.0, 0.0, "eraTr", "33", status);
8483 
8484 }
8485 
8486 static void t_trxp(int *status)
8487 /*
8488 ** - - - - - - -
8489 ** t _ t r x p
8490 ** - - - - - - -
8491 **
8492 ** Test eraTrxp function.
8493 **
8494 ** Returned:
8495 ** status int FALSE = success, TRUE = fail
8496 **
8497 ** Called: eraTrxp, vvd
8498 **
8499 ** This revision: 2013 August 7
8500 */
8501 {
8502  double r[3][3], p[3], trp[3];
8503 
8504 
8505  r[0][0] = 2.0;
8506  r[0][1] = 3.0;
8507  r[0][2] = 2.0;
8508 
8509  r[1][0] = 3.0;
8510  r[1][1] = 2.0;
8511  r[1][2] = 3.0;
8512 
8513  r[2][0] = 3.0;
8514  r[2][1] = 4.0;
8515  r[2][2] = 5.0;
8516 
8517  p[0] = 0.2;
8518  p[1] = 1.5;
8519  p[2] = 0.1;
8520 
8521  eraTrxp(r, p, trp);
8522 
8523  vvd(trp[0], 5.2, 1e-12, "eraTrxp", "1", status);
8524  vvd(trp[1], 4.0, 1e-12, "eraTrxp", "2", status);
8525  vvd(trp[2], 5.4, 1e-12, "eraTrxp", "3", status);
8526 
8527 }
8528 
8529 static void t_trxpv(int *status)
8530 /*
8531 ** - - - - - - - -
8532 ** t _ t r x p v
8533 ** - - - - - - - -
8534 **
8535 ** Test eraTrxpv function.
8536 **
8537 ** Returned:
8538 ** status int FALSE = success, TRUE = fail
8539 **
8540 ** Called: eraTrxpv, vvd
8541 **
8542 ** This revision: 2013 August 7
8543 */
8544 {
8545  double r[3][3], pv[2][3], trpv[2][3];
8546 
8547 
8548  r[0][0] = 2.0;
8549  r[0][1] = 3.0;
8550  r[0][2] = 2.0;
8551 
8552  r[1][0] = 3.0;
8553  r[1][1] = 2.0;
8554  r[1][2] = 3.0;
8555 
8556  r[2][0] = 3.0;
8557  r[2][1] = 4.0;
8558  r[2][2] = 5.0;
8559 
8560  pv[0][0] = 0.2;
8561  pv[0][1] = 1.5;
8562  pv[0][2] = 0.1;
8563 
8564  pv[1][0] = 1.5;
8565  pv[1][1] = 0.2;
8566  pv[1][2] = 0.1;
8567 
8568  eraTrxpv(r, pv, trpv);
8569 
8570  vvd(trpv[0][0], 5.2, 1e-12, "eraTrxpv", "p1", status);
8571  vvd(trpv[0][1], 4.0, 1e-12, "eraTrxpv", "p1", status);
8572  vvd(trpv[0][2], 5.4, 1e-12, "eraTrxpv", "p1", status);
8573 
8574  vvd(trpv[1][0], 3.9, 1e-12, "eraTrxpv", "v1", status);
8575  vvd(trpv[1][1], 5.3, 1e-12, "eraTrxpv", "v2", status);
8576  vvd(trpv[1][2], 4.1, 1e-12, "eraTrxpv", "v3", status);
8577 
8578 }
8579 
8580 static void t_tttai(int *status)
8581 /*
8582 ** - - - - - - - -
8583 ** t _ t t t a i
8584 ** - - - - - - - -
8585 **
8586 ** Test eraTttai function.
8587 **
8588 ** Returned:
8589 ** status int FALSE = success, TRUE = fail
8590 **
8591 ** Called: eraTttai, vvd, viv
8592 **
8593 ** This revision: 2013 August 7
8594 */
8595 {
8596  double a1, a2;
8597  int j;
8598 
8599 
8600  j = eraTttai(2453750.5, 0.892482639, &a1, &a2);
8601 
8602  vvd(a1, 2453750.5, 1e-6, "eraTttai", "a1", status);
8603  vvd(a2, 0.892110139, 1e-12, "eraTttai", "a2", status);
8604  viv(j, 0, "eraTttai", "j", status);
8605 
8606 }
8607 
8608 static void t_tttcg(int *status)
8609 /*
8610 ** - - - - - - - -
8611 ** t _ t t t c g
8612 ** - - - - - - - -
8613 **
8614 ** Test eraTttcg function.
8615 **
8616 ** Returned:
8617 ** status int FALSE = success, TRUE = fail
8618 **
8619 ** Called: eraTttcg, vvd, viv
8620 **
8621 ** This revision: 2013 August 7
8622 */
8623 {
8624  double g1, g2;
8625  int j;
8626 
8627 
8628  j = eraTttcg(2453750.5, 0.892482639, &g1, &g2);
8629 
8630  vvd( g1, 2453750.5, 1e-6, "eraTttcg", "g1", status);
8631  vvd( g2, 0.8924900312508587113, 1e-12, "eraTttcg", "g2", status);
8632  viv(j, 0, "eraTttcg", "j", status);
8633 
8634 }
8635 
8636 static void t_tttdb(int *status)
8637 /*
8638 ** - - - - - - - -
8639 ** t _ t t t d b
8640 ** - - - - - - - -
8641 **
8642 ** Test eraTttdb function.
8643 **
8644 ** Returned:
8645 ** status int FALSE = success, TRUE = fail
8646 **
8647 ** Called: eraTttdb, vvd, viv
8648 **
8649 ** This revision: 2013 August 7
8650 */
8651 {
8652  double b1, b2;
8653  int j;
8654 
8655 
8656  j = eraTttdb(2453750.5, 0.892855139, -0.000201, &b1, &b2);
8657 
8658  vvd(b1, 2453750.5, 1e-6, "eraTttdb", "b1", status);
8659  vvd(b2, 0.8928551366736111111, 1e-12, "eraTttdb", "b2", status);
8660  viv(j, 0, "eraTttdb", "j", status);
8661 
8662 }
8663 
8664 static void t_ttut1(int *status)
8665 /*
8666 ** - - - - - - - -
8667 ** t _ t t u t 1
8668 ** - - - - - - - -
8669 **
8670 ** Test eraTtut1 function.
8671 **
8672 ** Returned:
8673 ** status int FALSE = success, TRUE = fail
8674 **
8675 ** Called: eraTtut1, vvd, viv
8676 **
8677 ** This revision: 2013 August 7
8678 */
8679 {
8680  double u1, u2;
8681  int j;
8682 
8683 
8684  j = eraTtut1(2453750.5, 0.892855139, 64.8499, &u1, &u2);
8685 
8686  vvd(u1, 2453750.5, 1e-6, "eraTtut1", "u1", status);
8687  vvd(u2, 0.8921045614537037037, 1e-12, "eraTtut1", "u2", status);
8688  viv(j, 0, "eraTtut1", "j", status);
8689 
8690 }
8691 
8692 static void t_ut1tai(int *status)
8693 /*
8694 ** - - - - - - - - -
8695 ** t _ u t 1 t a i
8696 ** - - - - - - - - -
8697 **
8698 ** Test eraUt1tai function.
8699 **
8700 ** Returned:
8701 ** status int FALSE = success, TRUE = fail
8702 **
8703 ** Called: eraUt1tai, vvd, viv
8704 **
8705 ** This revision: 2013 August 7
8706 */
8707 {
8708  double a1, a2;
8709  int j;
8710 
8711 
8712  j = eraUt1tai(2453750.5, 0.892104561, -32.6659, &a1, &a2);
8713 
8714  vvd(a1, 2453750.5, 1e-6, "eraUt1tai", "a1", status);
8715  vvd(a2, 0.8924826385462962963, 1e-12, "eraUt1tai", "a2", status);
8716  viv(j, 0, "eraUt1tai", "j", status);
8717 
8718 }
8719 
8720 static void t_ut1tt(int *status)
8721 /*
8722 ** - - - - - - - -
8723 ** t _ u t 1 t t
8724 ** - - - - - - - -
8725 **
8726 ** Test eraUt1tt function.
8727 **
8728 ** Returned:
8729 ** status int FALSE = success, TRUE = fail
8730 **
8731 ** Called: eraUt1tt, vvd, viv
8732 **
8733 ** This revision: 2013 October 3
8734 */
8735 {
8736  double t1, t2;
8737  int j;
8738 
8739 
8740  j = eraUt1tt(2453750.5, 0.892104561, 64.8499, &t1, &t2);
8741 
8742  vvd(t1, 2453750.5, 1e-6, "eraUt1tt", "t1", status);
8743  vvd(t2, 0.8928551385462962963, 1e-12, "eraUt1tt", "t2", status);
8744  viv(j, 0, "eraUt1tt", "j", status);
8745 
8746 }
8747 
8748 static void t_ut1utc(int *status)
8749 /*
8750 ** - - - - - - - - -
8751 ** t _ u t 1 u t c
8752 ** - - - - - - - - -
8753 **
8754 ** Test eraUt1utc function.
8755 **
8756 ** Returned:
8757 ** status int FALSE = success, TRUE = fail
8758 **
8759 ** Called: eraUt1utc, vvd, viv
8760 **
8761 ** This revision: 2013 August 7
8762 */
8763 {
8764  double u1, u2;
8765  int j;
8766 
8767 
8768  j = eraUt1utc(2453750.5, 0.892104561, 0.3341, &u1, &u2);
8769 
8770  vvd(u1, 2453750.5, 1e-6, "eraUt1utc", "u1", status);
8771  vvd(u2, 0.8921006941018518519, 1e-12, "eraUt1utc", "u2", status);
8772  viv(j, 0, "eraUt1utc", "j", status);
8773 
8774 }
8775 
8776 static void t_utctai(int *status)
8777 /*
8778 ** - - - - - - - - -
8779 ** t _ u t c t a i
8780 ** - - - - - - - - -
8781 **
8782 ** Test eraUtctai function.
8783 **
8784 ** Returned:
8785 ** status int FALSE = success, TRUE = fail
8786 **
8787 ** Called: eraUtctai, vvd, viv
8788 **
8789 ** This revision: 2013 August 7
8790 */
8791 {
8792  double u1, u2;
8793  int j;
8794 
8795 
8796  j = eraUtctai(2453750.5, 0.892100694, &u1, &u2);
8797 
8798  vvd(u1, 2453750.5, 1e-6, "eraUtctai", "u1", status);
8799  vvd(u2, 0.8924826384444444444, 1e-12, "eraUtctai", "u2", status);
8800  viv(j, 0, "eraUtctai", "j", status);
8801 
8802 }
8803 
8804 static void t_utcut1(int *status)
8805 /*
8806 ** - - - - - - - - -
8807 ** t _ u t c u t 1
8808 ** - - - - - - - - -
8809 **
8810 ** Test eraUtcut1 function.
8811 **
8812 ** Returned:
8813 ** status int FALSE = success, TRUE = fail
8814 **
8815 ** Called: eraUtcut1, vvd, viv
8816 **
8817 ** This revision: 2013 August 7
8818 */
8819 {
8820  double u1, u2;
8821  int j;
8822 
8823 
8824  j = eraUtcut1(2453750.5, 0.892100694, 0.3341, &u1, &u2);
8825 
8826  vvd(u1, 2453750.5, 1e-6, "eraUtcut1", "u1", status);
8827  vvd(u2, 0.8921045608981481481, 1e-12, "eraUtcut1", "u2", status);
8828  viv(j, 0, "eraUtcut1", "j", status);
8829 
8830 }
8831 
8832 static void t_xy06(int *status)
8833 /*
8834 ** - - - - - - -
8835 ** t _ x y 0 6
8836 ** - - - - - - -
8837 **
8838 ** Test eraXy06 function.
8839 **
8840 ** Returned:
8841 ** status int FALSE = success, TRUE = fail
8842 **
8843 ** Called: eraXy06, vvd
8844 **
8845 ** This revision: 2013 August 7
8846 */
8847 {
8848  double x, y;
8849 
8850 
8851  eraXy06(2400000.5, 53736.0, &x, &y);
8852 
8853  vvd(x, 0.5791308486706010975e-3, 1e-15, "eraXy06", "x", status);
8854  vvd(y, 0.4020579816732958141e-4, 1e-16, "eraXy06", "y", status);
8855 
8856 }
8857 
8858 static void t_xys00a(int *status)
8859 /*
8860 ** - - - - - - - - -
8861 ** t _ x y s 0 0 a
8862 ** - - - - - - - - -
8863 **
8864 ** Test eraXys00a function.
8865 **
8866 ** Returned:
8867 ** status int FALSE = success, TRUE = fail
8868 **
8869 ** Called: eraXys00a, vvd
8870 **
8871 ** This revision: 2013 August 7
8872 */
8873 {
8874  double x, y, s;
8875 
8876 
8877  eraXys00a(2400000.5, 53736.0, &x, &y, &s);
8878 
8879  vvd(x, 0.5791308472168152904e-3, 1e-14, "eraXys00a", "x", status);
8880  vvd(y, 0.4020595661591500259e-4, 1e-15, "eraXys00a", "y", status);
8881  vvd(s, -0.1220040848471549623e-7, 1e-18, "eraXys00a", "s", status);
8882 
8883 }
8884 
8885 static void t_xys00b(int *status)
8886 /*
8887 ** - - - - - - - - -
8888 ** t _ x y s 0 0 b
8889 ** - - - - - - - - -
8890 **
8891 ** Test eraXys00b function.
8892 **
8893 ** Returned:
8894 ** status int FALSE = success, TRUE = fail
8895 **
8896 ** Called: eraXys00b, vvd
8897 **
8898 ** This revision: 2013 August 7
8899 */
8900 {
8901  double x, y, s;
8902 
8903 
8904  eraXys00b(2400000.5, 53736.0, &x, &y, &s);
8905 
8906  vvd(x, 0.5791301929950208873e-3, 1e-14, "eraXys00b", "x", status);
8907  vvd(y, 0.4020553681373720832e-4, 1e-15, "eraXys00b", "y", status);
8908  vvd(s, -0.1220027377285083189e-7, 1e-18, "eraXys00b", "s", status);
8909 
8910 }
8911 
8912 static void t_xys06a(int *status)
8913 /*
8914 ** - - - - - - - - -
8915 ** t _ x y s 0 6 a
8916 ** - - - - - - - - -
8917 **
8918 ** Test eraXys06a function.
8919 **
8920 ** Returned:
8921 ** status int FALSE = success, TRUE = fail
8922 **
8923 ** Called: eraXys06a, vvd
8924 **
8925 ** This revision: 2013 August 7
8926 */
8927 {
8928  double x, y, s;
8929 
8930 
8931  eraXys06a(2400000.5, 53736.0, &x, &y, &s);
8932 
8933  vvd(x, 0.5791308482835292617e-3, 1e-14, "eraXys06a", "x", status);
8934  vvd(y, 0.4020580099454020310e-4, 1e-15, "eraXys06a", "y", status);
8935  vvd(s, -0.1220032294164579896e-7, 1e-18, "eraXys06a", "s", status);
8936 
8937 }
8938 
8939 static void t_zp(int *status)
8940 /*
8941 ** - - - - -
8942 ** t _ z p
8943 ** - - - - -
8944 **
8945 ** Test eraZp function.
8946 **
8947 ** Returned:
8948 ** status int FALSE = success, TRUE = fail
8949 **
8950 ** Called: eraZp, vvd
8951 **
8952 ** This revision: 2013 August 7
8953 */
8954 {
8955  double p[3];
8956 
8957 
8958  p[0] = 0.3;
8959  p[1] = 1.2;
8960  p[2] = -2.5;
8961 
8962  eraZp(p);
8963 
8964  vvd(p[0], 0.0, 0.0, "eraZp", "1", status);
8965  vvd(p[1], 0.0, 0.0, "eraZp", "2", status);
8966  vvd(p[2], 0.0, 0.0, "eraZp", "3", status);
8967 
8968 }
8969 
8970 static void t_zpv(int *status)
8971 /*
8972 ** - - - - - -
8973 ** t _ z p v
8974 ** - - - - - -
8975 **
8976 ** Test eraZpv function.
8977 **
8978 ** Returned:
8979 ** status int FALSE = success, TRUE = fail
8980 **
8981 ** Called: eraZpv, vvd
8982 **
8983 ** This revision: 2013 August 7
8984 */
8985 {
8986  double pv[2][3];
8987 
8988 
8989  pv[0][0] = 0.3;
8990  pv[0][1] = 1.2;
8991  pv[0][2] = -2.5;
8992 
8993  pv[1][0] = -0.5;
8994  pv[1][1] = 3.1;
8995  pv[1][2] = 0.9;
8996 
8997  eraZpv(pv);
8998 
8999  vvd(pv[0][0], 0.0, 0.0, "eraZpv", "p1", status);
9000  vvd(pv[0][1], 0.0, 0.0, "eraZpv", "p2", status);
9001  vvd(pv[0][2], 0.0, 0.0, "eraZpv", "p3", status);
9002 
9003  vvd(pv[1][0], 0.0, 0.0, "eraZpv", "v1", status);
9004  vvd(pv[1][1], 0.0, 0.0, "eraZpv", "v2", status);
9005  vvd(pv[1][2], 0.0, 0.0, "eraZpv", "v3", status);
9006 
9007 }
9008 
9009 static void t_zr(int *status)
9010 /*
9011 ** - - - - -
9012 ** t _ z r
9013 ** - - - - -
9014 **
9015 ** Test eraZr function.
9016 **
9017 ** Returned:
9018 ** status int FALSE = success, TRUE = fail
9019 **
9020 ** Called: eraZr, vvd
9021 **
9022 ** This revision: 2013 August 7
9023 */
9024 {
9025  double r[3][3];
9026 
9027 
9028  r[0][0] = 2.0;
9029  r[1][0] = 3.0;
9030  r[2][0] = 2.0;
9031 
9032  r[0][1] = 3.0;
9033  r[1][1] = 2.0;
9034  r[2][1] = 3.0;
9035 
9036  r[0][2] = 3.0;
9037  r[1][2] = 4.0;
9038  r[2][2] = 5.0;
9039 
9040  eraZr(r);
9041 
9042  vvd(r[0][0], 0.0, 0.0, "eraZr", "00", status);
9043  vvd(r[1][0], 0.0, 0.0, "eraZr", "01", status);
9044  vvd(r[2][0], 0.0, 0.0, "eraZr", "02", status);
9045 
9046  vvd(r[0][1], 0.0, 0.0, "eraZr", "10", status);
9047  vvd(r[1][1], 0.0, 0.0, "eraZr", "11", status);
9048  vvd(r[2][1], 0.0, 0.0, "eraZr", "12", status);
9049 
9050  vvd(r[0][2], 0.0, 0.0, "eraZr", "20", status);
9051  vvd(r[1][2], 0.0, 0.0, "eraZr", "21", status);
9052  vvd(r[2][2], 0.0, 0.0, "eraZr", "22", status);
9053 
9054 }
9055 
9056 int main(int argc, char *argv[])
9057 /*
9058 ** - - - - -
9059 ** m a i n
9060 ** - - - - -
9061 **
9062 ** This revision: 2013 October 3
9063 */
9064 {
9065  int status;
9066 
9067 
9068 /* If any command-line argument, switch to verbose reporting. */
9069  if (argc > 1) {
9070  verbose = 1;
9071  argv[0][0] += 0; /* to avoid compiler warnings */
9072  }
9073 
9074 /* Preset the &status to FALSE = success. */
9075  status = 0;
9076 
9077 /* Test all of the ERFA functions. */
9078  t_a2af(&status);
9079  t_a2tf(&status);
9080  t_ab(&status);
9081  t_af2a(&status);
9082  t_anp(&status);
9083  t_anpm(&status);
9084  t_apcg(&status);
9085  t_apcg13(&status);
9086  t_apci(&status);
9087  t_apci13(&status);
9088  t_apco(&status);
9089  t_apco13(&status);
9090  t_apcs(&status);
9091  t_apcs13(&status);
9092  t_aper(&status);
9093  t_aper13(&status);
9094  t_apio(&status);
9095  t_apio13(&status);
9096  t_atci13(&status);
9097  t_atciq(&status);
9098  t_atciqn(&status);
9099  t_atciqz(&status);
9100  t_atco13(&status);
9101  t_atic13(&status);
9102  t_aticq(&status);
9103  t_aticqn(&status);
9104  t_atio13(&status);
9105  t_atioq(&status);
9106  t_atoc13(&status);
9107  t_atoi13(&status);
9108  t_atoiq(&status);
9109  t_bi00(&status);
9110  t_bp00(&status);
9111  t_bp06(&status);
9112  t_bpn2xy(&status);
9113  t_c2i00a(&status);
9114  t_c2i00b(&status);
9115  t_c2i06a(&status);
9116  t_c2ibpn(&status);
9117  t_c2ixy(&status);
9118  t_c2ixys(&status);
9119  t_c2s(&status);
9120  t_c2t00a(&status);
9121  t_c2t00b(&status);
9122  t_c2t06a(&status);
9123  t_c2tcio(&status);
9124  t_c2teqx(&status);
9125  t_c2tpe(&status);
9126  t_c2txy(&status);
9127  t_cal2jd(&status);
9128  t_cp(&status);
9129  t_cpv(&status);
9130  t_cr(&status);
9131  t_d2dtf(&status);
9132  t_d2tf(&status);
9133  t_dat(&status);
9134  t_dtdb(&status);
9135  t_dtf2d(&status);
9136  t_ee00(&status);
9137  t_ee00a(&status);
9138  t_ee00b(&status);
9139  t_ee06a(&status);
9140  t_eect00(&status);
9141  t_eform(&status);
9142  t_eo06a(&status);
9143  t_eors(&status);
9144  t_epb(&status);
9145  t_epb2jd(&status);
9146  t_epj(&status);
9147  t_epj2jd(&status);
9148  t_epv00(&status);
9149  t_eqeq94(&status);
9150  t_era00(&status);
9151  t_fad03(&status);
9152  t_fae03(&status);
9153  t_faf03(&status);
9154  t_faju03(&status);
9155  t_fal03(&status);
9156  t_falp03(&status);
9157  t_fama03(&status);
9158  t_fame03(&status);
9159  t_fane03(&status);
9160  t_faom03(&status);
9161  t_fapa03(&status);
9162  t_fasa03(&status);
9163  t_faur03(&status);
9164  t_fave03(&status);
9165  t_fk52h(&status);
9166  t_fk5hip(&status);
9167  t_fk5hz(&status);
9168  t_fw2m(&status);
9169  t_fw2xy(&status);
9170  t_g2icrs(&status);
9171  t_gc2gd(&status);
9172  t_gc2gde(&status);
9173  t_gd2gc(&status);
9174  t_gd2gce(&status);
9175  t_gmst00(&status);
9176  t_gmst06(&status);
9177  t_gmst82(&status);
9178  t_gst00a(&status);
9179  t_gst00b(&status);
9180  t_gst06(&status);
9181  t_gst06a(&status);
9182  t_gst94(&status);
9183  t_h2fk5(&status);
9184  t_hfk5z(&status);
9185  t_icrs2g(&status);
9186  t_ir(&status);
9187  t_jd2cal(&status);
9188  t_jdcalf(&status);
9189  t_ld(&status);
9190  t_ldn(&status);
9191  t_ldsun(&status);
9192  t_num00a(&status);
9193  t_num00b(&status);
9194  t_num06a(&status);
9195  t_numat(&status);
9196  t_nut00a(&status);
9197  t_nut00b(&status);
9198  t_nut06a(&status);
9199  t_nut80(&status);
9200  t_nutm80(&status);
9201  t_obl06(&status);
9202  t_obl80(&status);
9203  t_p06e(&status);
9204  t_p2pv(&status);
9205  t_p2s(&status);
9206  t_pap(&status);
9207  t_pas(&status);
9208  t_pb06(&status);
9209  t_pdp(&status);
9210  t_pfw06(&status);
9211  t_plan94(&status);
9212  t_pmat00(&status);
9213  t_pmat06(&status);
9214  t_pmat76(&status);
9215  t_pm(&status);
9216  t_pmp(&status);
9217  t_pmpx(&status);
9218  t_pmsafe(&status);
9219  t_pn(&status);
9220  t_pn00(&status);
9221  t_pn00a(&status);
9222  t_pn00b(&status);
9223  t_pn06a(&status);
9224  t_pn06(&status);
9225  t_pnm00a(&status);
9226  t_pnm00b(&status);
9227  t_pnm06a(&status);
9228  t_pnm80(&status);
9229  t_pom00(&status);
9230  t_ppp(&status);
9231  t_ppsp(&status);
9232  t_pr00(&status);
9233  t_prec76(&status);
9234  t_pv2p(&status);
9235  t_pv2s(&status);
9236  t_pvdpv(&status);
9237  t_pvm(&status);
9238  t_pvmpv(&status);
9239  t_pvppv(&status);
9240  t_pvstar(&status);
9241  t_pvtob(&status);
9242  t_pvu(&status);
9243  t_pvup(&status);
9244  t_pvxpv(&status);
9245  t_pxp(&status);
9246  t_refco(&status);
9247  t_rm2v(&status);
9248  t_rv2m(&status);
9249  t_rx(&status);
9250  t_rxp(&status);
9251  t_rxpv(&status);
9252  t_rxr(&status);
9253  t_ry(&status);
9254  t_rz(&status);
9255  t_s00a(&status);
9256  t_s00b(&status);
9257  t_s00(&status);
9258  t_s06a(&status);
9259  t_s06(&status);
9260  t_s2c(&status);
9261  t_s2p(&status);
9262  t_s2pv(&status);
9263  t_s2xpv(&status);
9264  t_sepp(&status);
9265  t_seps(&status);
9266  t_sp00(&status);
9267  t_starpm(&status);
9268  t_starpv(&status);
9269  t_sxp(&status);
9270  t_sxpv(&status);
9271  t_taitt(&status);
9272  t_taiut1(&status);
9273  t_taiutc(&status);
9274  t_tcbtdb(&status);
9275  t_tcgtt(&status);
9276  t_tdbtcb(&status);
9277  t_tdbtt(&status);
9278  t_tf2a(&status);
9279  t_tf2d(&status);
9280  t_tr(&status);
9281  t_trxp(&status);
9282  t_trxpv(&status);
9283  t_tttai(&status);
9284  t_tttcg(&status);
9285  t_tttdb(&status);
9286  t_ttut1(&status);
9287  t_ut1tai(&status);
9288  t_ut1tt(&status) ;
9289  t_ut1utc(&status);
9290  t_utctai(&status);
9291  t_utcut1(&status);
9292  t_xy06(&status);
9293  t_xys00a(&status);
9294  t_xys00b(&status);
9295  t_xys06a(&status);
9296  t_zp(&status);
9297  t_zpv(&status);
9298  t_zr(&status);
9299 
9300 /* Report, set up an appropriate exit status, and finish. */
9301  if (status) {
9302  printf("t_erfa_c validation failed!\n");
9303  } else {
9304  printf("t_erfa_c validation successful\n");
9305  }
9306  return status;
9307 }
9308 /*----------------------------------------------------------------------
9309 **
9310 **
9311 ** Copyright (C) 2013-2015, NumFOCUS Foundation.
9312 ** All rights reserved.
9313 **
9314 ** This library is derived, with permission, from the International
9315 ** Astronomical Union's "Standards of Fundamental Astronomy" library,
9316 ** available from http://www.iausofa.org.
9317 **
9318 ** The ERFA version is intended to retain identical functionality to
9319 ** the SOFA library, but made distinct through different function and
9320 ** file names, as set out in the SOFA license conditions. The SOFA
9321 ** original has a role as a reference standard for the IAU and IERS,
9322 ** and consequently redistribution is permitted only in its unaltered
9323 ** state. The ERFA version is not subject to this restriction and
9324 ** therefore can be included in distributions which do not support the
9325 ** concept of "read only" software.
9326 **
9327 ** Although the intent is to replicate the SOFA API (other than
9328 ** replacement of prefix names) and results (with the exception of
9329 ** bugs; any that are discovered will be fixed), SOFA is not
9330 ** responsible for any errors found in this version of the library.
9331 **
9332 ** If you wish to acknowledge the SOFA heritage, please acknowledge
9333 ** that you are using a library derived from SOFA, rather than SOFA
9334 ** itself.
9335 **
9336 **
9337 ** TERMS AND CONDITIONS
9338 **
9339 ** Redistribution and use in source and binary forms, with or without
9340 ** modification, are permitted provided that the following conditions
9341 ** are met:
9342 **
9343 ** 1 Redistributions of source code must retain the above copyright
9344 ** notice, this list of conditions and the following disclaimer.
9345 **
9346 ** 2 Redistributions in binary form must reproduce the above copyright
9347 ** notice, this list of conditions and the following disclaimer in
9348 ** the documentation and/or other materials provided with the
9349 ** distribution.
9350 **
9351 ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
9352 ** the International Astronomical Union nor the names of its
9353 ** contributors may be used to endorse or promote products derived
9354 ** from this software without specific prior written permission.
9355 **
9356 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
9357 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9358 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
9359 ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
9360 ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
9361 ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
9362 ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
9363 ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
9364 ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
9365 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
9366 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
9367 ** POSSIBILITY OF SUCH DAMAGE.
9368 **
9369 */
double eraGmst00(double uta, double utb, double tta, double ttb)
Definition: gmst00.c:3
static void t_obl80(int *status)
Definition: t_erfa_c.c:5022
void eraC2ibpn(double date1, double date2, double rbpn[3][3], double rc2i[3][3])
Definition: c2ibpn.c:3
static void t_bp06(int *status)
Definition: t_erfa_c.c:1855
void eraAper13(double ut11, double ut12, eraASTROM *astrom)
Definition: aper13.c:3
void eraPmpx(double rc, double dc, double pr, double pd, double px, double rv, double pmt, double pob[3], double pco[3])
Definition: pmpx.c:3
double eraS00(double date1, double date2, double x, double y)
Definition: s00.c:3
void eraPnm00a(double date1, double date2, double rbpn[3][3])
Definition: pnm00a.c:3
double eraPdp(double a[3], double b[3])
Definition: pdp.c:3
static void t_eors(int *status)
Definition: t_erfa_c.c:3178
static void t_apci(int *status)
Definition: t_erfa_c.c:410
void eraIcrs2g(double dr, double dd, double *dl, double *db)
Definition: icrs2g.c:3
void eraApcs(double date1, double date2, double pv[2][3], double ebpv[2][3], double ehp[3], eraASTROM *astrom)
Definition: apcs.c:3
static void t_apco13(int *status)
Definition: t_erfa_c.c:676
static void t_rz(int *status)
Definition: t_erfa_c.c:7623
int eraDtf2d(const char *scale, int iy, int im, int id, int ihr, int imn, double sec, double *d1, double *d2)
Definition: dtf2d.c:4
static void t_c2s(int *status)
Definition: t_erfa_c.c:2255
static void t_ppsp(int *status)
Definition: t_erfa_c.c:6671
void eraC2i06a(double date1, double date2, double rc2i[3][3])
Definition: c2i06a.c:3
void eraPvxpv(double a[2][3], double b[2][3], double axb[2][3])
Definition: pvxpv.c:3
double eraFae03(double t)
Definition: fae03.c:3
static void t_atci13(int *status)
Definition: t_erfa_c.c:1114
static void t_ut1tai(int *status)
Definition: t_erfa_c.c:8692
void eraAper(double theta, eraASTROM *astrom)
Definition: aper.c:3
static void t_pvstar(int *status)
Definition: t_erfa_c.c:7013
double eraGst06a(double uta, double utb, double tta, double ttb)
Definition: gst06a.c:3
void eraAb(double pnat[3], double v[3], double s, double bm1, double ppr[3])
Definition: ab.c:3
static void t_pv2p(int *status)
Definition: t_erfa_c.c:6770
int eraTttai(double tt1, double tt2, double *tai1, double *tai2)
Definition: tttai.c:3
double eraFane03(double t)
Definition: fane03.c:3
int eraD2dtf(const char *scale, int ndp, double d1, double d2, int *iy, int *im, int *id, int ihmsf[4])
Definition: d2dtf.c:4
static void t_starpv(int *status)
Definition: t_erfa_c.c:8067
double pmt
Definition: erfam.h:17
void eraPvm(double pv[2][3], double *r, double *s)
Definition: pvm.c:3
double eraFapa03(double t)
Definition: fapa03.c:3
static void t_ldsun(int *status)
Definition: t_erfa_c.c:4630
static void t_cp(int *status)
Definition: t_erfa_c.c:2714
double refa
Definition: erfam.h:32
static void t_atoiq(int *status)
Definition: t_erfa_c.c:1686
static void t_s2c(int *status)
Definition: t_erfa_c.c:7803
static void t_tr(int *status)
Definition: t_erfa_c.c:8439
double eraPap(double a[3], double b[3])
Definition: pap.c:3
int eraTaiutc(double tai1, double tai2, double *utc1, double *utc2)
Definition: taiutc.c:3
double eh[3]
Definition: erfam.h:19
void eraPvmpv(double a[2][3], double b[2][3], double amb[2][3])
Definition: pvmpv.c:3
void eraSxpv(double s, double pv[2][3], double spv[2][3])
Definition: sxpv.c:3
double eraEe00b(double date1, double date2)
Definition: ee00b.c:3
void eraS2p(double theta, double phi, double r, double p[3])
Definition: s2p.c:3
static void t_pn00b(int *status)
Definition: t_erfa_c.c:6005
double eral
Definition: erfam.h:31
int eraGd2gc(int n, double elong, double phi, double height, double xyz[3])
Definition: gd2gc.c:3
void eraPvtob(double elong, double phi, double height, double xp, double yp, double sp, double theta, double pv[2][3])
Definition: pvtob.c:3
void eraPv2s(double pv[2][3], double *theta, double *phi, double *r, double *td, double *pd, double *rd)
Definition: pv2s.c:3
static void t_p06e(int *status)
Definition: t_erfa_c.c:5047
void eraZpv(double pv[2][3])
Definition: zpv.c:3
static void t_s06a(int *status)
Definition: t_erfa_c.c:7750
static void t_pmsafe(int *status)
Definition: t_erfa_c.c:5649
double eraS06a(double date1, double date2)
Definition: s06a.c:3
static void vvd(double val, double valok, double dval, const char *func, const char *test, int *status)
Definition: t_erfa_c.c:58
void eraPmat06(double date1, double date2, double rbp[3][3])
Definition: pmat06.c:3
double pv[2][3]
Definition: erfam.h:41
static void t_p2s(int *status)
Definition: t_erfa_c.c:5149
int eraJdcalf(int ndp, double dj1, double dj2, int iymdf[4])
Definition: jdcalf.c:3
static void t_ab(int *status)
Definition: t_erfa_c.c:160
double eraGst00a(double uta, double utb, double tta, double ttb)
Definition: gst00a.c:3
void eraNumat(double epsa, double dpsi, double deps, double rmatn[3][3])
Definition: numat.c:3
int eraTdbtt(double tdb1, double tdb2, double dtr, double *tt1, double *tt2)
Definition: tdbtt.c:3
double eraSepp(double a[3], double b[3])
Definition: sepp.c:3
void eraLd(double bm, double p[3], double q[3], double e[3], double em, double dlim, double p1[3])
Definition: ld.c:3
void eraAtic13(double ri, double di, double date1, double date2, double *rc, double *dc, double *eo)
Definition: atic13.c:3
void eraPmat76(double date1, double date2, double rmatp[3][3])
Definition: pmat76.c:3
static void t_xys00b(int *status)
Definition: t_erfa_c.c:8885
void eraPnm00b(double date1, double date2, double rbpn[3][3])
Definition: pnm00b.c:3
static void t_c2i00a(int *status)
Definition: t_erfa_c.c:1972
double eraFal03(double t)
Definition: fal03.c:3
static void t_s00a(int *status)
Definition: t_erfa_c.c:7672
void eraFk52h(double r5, double d5, double dr5, double dd5, double px5, double rv5, double *rh, double *dh, double *drh, double *ddh, double *pxh, double *rvh)
Definition: fk52h.c:3
void eraPfw06(double date1, double date2, double *gamb, double *phib, double *psib, double *epsa)
Definition: pfw06.c:3
void eraNut80(double date1, double date2, double *dpsi, double *deps)
Definition: nut80.c:3
static void t_fk5hz(int *status)
Definition: t_erfa_c.c:3799
void eraTrxpv(double r[3][3], double pv[2][3], double trpv[2][3])
Definition: trxpv.c:3
static void t_xys00a(int *status)
Definition: t_erfa_c.c:8858
static void t_seps(int *status)
Definition: t_erfa_c.c:7966
static void t_aper(int *status)
Definition: t_erfa_c.c:941
void eraPnm06a(double date1, double date2, double rnpb[3][3])
Definition: pnm06a.c:3
static void t_atciqz(int *status)
Definition: t_erfa_c.c:1250
int eraTaiut1(double tai1, double tai2, double dta, double *ut11, double *ut12)
Definition: taiut1.c:3
static void t_faom03(int *status)
Definition: t_erfa_c.c:3607
static void t_dtdb(int *status)
Definition: t_erfa_c.c:2929
static void t_pnm00b(int *status)
Definition: t_erfa_c.c:6456
void eraPv2p(double pv[2][3], double p[3])
Definition: pv2p.c:3
double ypl
Definition: erfam.h:27
static void t_epj2jd(int *status)
Definition: t_erfa_c.c:3295
int eraGc2gde(double a, double f, double xyz[3], double *elong, double *phi, double *height)
Definition: gc2gde.c:3
static void t_pn06(int *status)
Definition: t_erfa_c.c:6277
static void t_pmat00(int *status)
Definition: t_erfa_c.c:5412
static void t_starpm(int *status)
Definition: t_erfa_c.c:8018
void eraEpj2jd(double epj, double *djm0, double *djm)
Definition: epj2jd.c:3
static void t_gst00a(int *status)
Definition: t_erfa_c.c:4167
void eraRx(double phi, double r[3][3])
Definition: rx.c:3
static void t_c2txy(int *status)
Definition: t_erfa_c.c:2632
static void t_rxr(int *status)
Definition: t_erfa_c.c:7515
static void t_a2af(int *status)
Definition: t_erfa_c.c:98
void eraFw2m(double gamb, double phib, double psi, double eps, double r[3][3])
Definition: fw2m.c:3
static void t_taiutc(int *status)
Definition: t_erfa_c.c:8245
static void t_fad03(int *status)
Definition: t_erfa_c.c:3427
static void t_refco(int *status)
Definition: t_erfa_c.c:7260
void eraC2i00b(double date1, double date2, double rc2i[3][3])
Definition: c2i00b.c:3
static void t_tdbtcb(int *status)
Definition: t_erfa_c.c:8329
void eraRm2v(double r[3][3], double w[3])
Definition: rm2v.c:3
static void t_pnm00a(int *status)
Definition: t_erfa_c.c:6412
static void t_nutm80(int *status)
Definition: t_erfa_c.c:4958
static void t_pvmpv(int *status)
Definition: t_erfa_c.c:6919
void eraXys00b(double date1, double date2, double *x, double *y, double *s)
Definition: xys00b.c:3
static void t_utcut1(int *status)
Definition: t_erfa_c.c:8804
void eraS2c(double theta, double phi, double c[3])
Definition: s2c.c:3
void eraAtciqn(double rc, double dc, double pr, double pd, double px, double rv, eraASTROM *astrom, int n, eraLDBODY b[], double *ri, double *di)
Definition: atciqn.c:3
static void t_s06(int *status)
Definition: t_erfa_c.c:7775
double sphi
Definition: erfam.h:28
static void t_zpv(int *status)
Definition: t_erfa_c.c:8970
double eraGmst82(double dj1, double dj2)
Definition: gmst82.c:3
void eraH2fk5(double rh, double dh, double drh, double ddh, double pxh, double rvh, double *r5, double *d5, double *dr5, double *dd5, double *px5, double *rv5)
Definition: h2fk5.c:3
static void t_pn06a(int *status)
Definition: t_erfa_c.c:6141
void eraFw2xy(double gamb, double phib, double psi, double eps, double *x, double *y)
Definition: fw2xy.c:3
static void t_atco13(int *status)
Definition: t_erfa_c.c:1283
static void t_pn00(int *status)
Definition: t_erfa_c.c:5734
int eraUtctai(double utc1, double utc2, double *tai1, double *tai2)
Definition: utctai.c:3
void eraAtoiq(const char *type, double ob1, double ob2, eraASTROM *astrom, double *ri, double *di)
Definition: atoiq.c:3
static void t_fapa03(int *status)
Definition: t_erfa_c.c:3627
char id[4]
Definition: FITS.h:71
static void t_c2tcio(int *status)
Definition: t_erfa_c.c:2438
static void t_aper13(int *status)
Definition: t_erfa_c.c:971
static void t_tf2d(int *status)
Definition: t_erfa_c.c:8412
static void t_dat(int *status)
Definition: t_erfa_c.c:2892
double eraSp00(double date1, double date2)
Definition: sp00.c:3
double eraEqeq94(double date1, double date2)
Definition: eqeq94.c:3
static void t_pn(int *status)
Definition: t_erfa_c.c:5701
void eraC2t00b(double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
Definition: c2t00b.c:3
static void t_gd2gc(int *status)
Definition: t_erfa_c.c:4013
void eraCr(double r[3][3], double c[3][3])
Definition: cr.c:3
static void t_jd2cal(int *status)
Definition: t_erfa_c.c:4456
int eraUt1tai(double ut11, double ut12, double dta, double *tai1, double *tai2)
Definition: ut1tai.c:3
void eraZr(double r[3][3])
Definition: zr.c:3
#define ERFA_WGS84
Definition: erfam.h:140
void eraPvup(double dt, double pv[2][3], double p[3])
Definition: pvup.c:3
static void t_anpm(int *status)
Definition: t_erfa_c.c:242
static void t_s00(int *status)
Definition: t_erfa_c.c:7722
double eraPm(double p[3])
Definition: pm.c:3
static void t_c2teqx(int *status)
Definition: t_erfa_c.c:2509
static void t_s00b(int *status)
Definition: t_erfa_c.c:7697
void eraAtci13(double rc, double dc, double pr, double pd, double px, double rv, double date1, double date2, double *ri, double *di, double *eo)
Definition: atci13.c:3
int eraApio13(double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, eraASTROM *astrom)
Definition: apio13.c:3
static void t_taitt(int *status)
Definition: t_erfa_c.c:8189
double eraFaom03(double t)
Definition: faom03.c:3
double refb
Definition: erfam.h:33
static void t_gmst82(int *status)
Definition: t_erfa_c.c:4142
static void t_epb2jd(int *status)
Definition: t_erfa_c.c:3242
void eraS2xpv(double s1, double s2, double pv[2][3], double spv[2][3])
Definition: s2xpv.c:3
void eraApcg13(double date1, double date2, eraASTROM *astrom)
Definition: apcg13.c:3
static void t_sepp(int *status)
Definition: t_erfa_c.c:7933
void eraFk5hip(double r5h[3][3], double s5h[3])
Definition: fk5hip.c:3
static void t_s2xpv(int *status)
Definition: t_erfa_c.c:7891
static void t_apci13(int *status)
Definition: t_erfa_c.c:492
void eraBpn2xy(double rbpn[3][3], double *x, double *y)
Definition: bpn2xy.c:3
static void t_atoc13(int *status)
Definition: t_erfa_c.c:1559
static void t_pnm80(int *status)
Definition: t_erfa_c.c:6544
double eraFad03(double t)
Definition: fad03.c:3
static void t_gd2gce(int *status)
Definition: t_erfa_c.c:4063
double eraGst06(double uta, double utb, double tta, double ttb, double rnpb[3][3])
Definition: gst06.c:3
double cphi
Definition: erfam.h:29
void eraC2txy(double tta, double ttb, double uta, double utb, double x, double y, double xp, double yp, double rc2t[3][3])
Definition: c2txy.c:3
void eraIr(double r[3][3])
Definition: ir.c:3
void eraApcg(double date1, double date2, double ebpv[2][3], double ehp[3], eraASTROM *astrom)
Definition: apcg.c:3
static void t_af2a(int *status)
Definition: t_erfa_c.c:196
static void t_gmst06(int *status)
Definition: t_erfa_c.c:4117
static void t_fk52h(int *status)
Definition: t_erfa_c.c:3707
double eraPas(double al, double ap, double bl, double bp)
Definition: pas.c:3
void eraRxr(double a[3][3], double b[3][3], double atb[3][3])
Definition: rxr.c:3
void eraRy(double theta, double r[3][3])
Definition: ry.c:3
static void t_epb(int *status)
Definition: t_erfa_c.c:3217
static void t_taiut1(int *status)
Definition: t_erfa_c.c:8217
void eraC2t00a(double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
Definition: c2t00a.c:3
int eraPmsafe(double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
Definition: pmsafe.c:3
static void t_ut1tt(int *status)
Definition: t_erfa_c.c:8720
void eraAtciq(double rc, double dc, double pr, double pd, double px, double rv, eraASTROM *astrom, double *ri, double *di)
Definition: atciq.c:3
void eraAtciqz(double rc, double dc, eraASTROM *astrom, double *ri, double *di)
Definition: atciqz.c:3
int eraPlan94(double date1, double date2, int np, double pv[2][3])
Definition: plan94.c:3
void eraEpb2jd(double epb, double *djm0, double *djm)
Definition: epb2jd.c:3
double eraEe00(double date1, double date2, double epsa, double dpsi)
Definition: ee00.c:3
static void t_ld(int *status)
Definition: t_erfa_c.c:4523
int eraTf2a(char s, int ihour, int imin, double sec, double *rad)
Definition: tf2a.c:4
void eraPrec76(double date01, double date02, double date11, double date12, double *zeta, double *z, double *theta)
Definition: prec76.c:3
static void t_fal03(int *status)
Definition: t_erfa_c.c:3507
void eraNut00b(double date1, double date2, double *dpsi, double *deps)
Definition: nut00b.c:3
static void t_atoi13(int *status)
Definition: t_erfa_c.c:1623
static void t_pmp(int *status)
Definition: t_erfa_c.c:5573
#define ERFA_GRS80
Definition: erfam.h:141
int eraUt1utc(double ut11, double ut12, double dut1, double *utc1, double *utc2)
Definition: ut1utc.c:3
void eraBp06(double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3])
Definition: bp06.c:3
void eraXys06a(double date1, double date2, double *x, double *y, double *s)
Definition: xys06a.c:3
double eraEra00(double dj1, double dj2)
Definition: era00.c:3
double eraEe06a(double date1, double date2)
Definition: ee06a.c:3
void eraC2ixy(double date1, double date2, double x, double y, double rc2i[3][3])
Definition: c2ixy.c:3
static void t_atio13(int *status)
Definition: t_erfa_c.c:1462
static void t_aticqn(int *status)
Definition: t_erfa_c.c:1404
static void t_fw2m(int *status)
Definition: t_erfa_c.c:3828
static void t_pmpx(int *status)
Definition: t_erfa_c.c:5608
static void t_pvm(int *status)
Definition: t_erfa_c.c:6885
void eraNum06a(double date1, double date2, double rmatn[3][3])
Definition: num06a.c:3
int eraApco13(double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, eraASTROM *astrom, double *eo)
Definition: apco13.c:3
void eraPxp(double a[3], double b[3], double axb[3])
Definition: pxp.c:3
static void t_ldn(int *status)
Definition: t_erfa_c.c:4566
void eraApci13(double date1, double date2, eraASTROM *astrom, double *eo)
Definition: apci13.c:3
double eraFame03(double t)
Definition: fame03.c:3
void eraC2s(double p[3], double *theta, double *phi)
Definition: c2s.c:3
static void t_atic13(int *status)
Definition: t_erfa_c.c:1339
void eraPom00(double xp, double yp, double sp, double rpom[3][3])
Definition: pom00.c:3
static void t_apcs(int *status)
Definition: t_erfa_c.c:780
double eraGst00b(double uta, double utb)
Definition: gst00b.c:3
void eraRz(double psi, double r[3][3])
Definition: rz.c:3
static void t_zr(int *status)
Definition: t_erfa_c.c:9009
void eraRxp(double r[3][3], double p[3], double rp[3])
Definition: rxp.c:3
void eraTr(double r[3][3], double rt[3][3])
Definition: tr.c:3
void eraAticqn(double ri, double di, eraASTROM *astrom, int n, eraLDBODY b[], double *rc, double *dc)
Definition: aticqn.c:3
static void t_zp(int *status)
Definition: t_erfa_c.c:8939
void eraPb06(double date1, double date2, double *bzeta, double *bz, double *btheta)
Definition: pb06.c:3
static void t_g2icrs(int *status)
Definition: t_erfa_c.c:3908
void eraTrxp(double r[3][3], double p[3], double trp[3])
Definition: trxp.c:3
void eraHfk5z(double rh, double dh, double date1, double date2, double *r5, double *d5, double *dr5, double *dd5)
Definition: hfk5z.c:3
static void t_pom00(int *status)
Definition: t_erfa_c.c:6588
void eraNut06a(double date1, double date2, double *dpsi, double *deps)
Definition: nut06a.c:3
double eraFaf03(double t)
Definition: faf03.c:3
static void t_ry(int *status)
Definition: t_erfa_c.c:7574
int eraAtoc13(const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *rc, double *dc)
Definition: atoc13.c:3
double along
Definition: erfam.h:24
void eraP2s(double p[3], double *theta, double *phi, double *r)
Definition: p2s.c:3
static void t_pvtob(int *status)
Definition: t_erfa_c.c:7054
double eraFalp03(double t)
Definition: falp03.c:3
static void t_tcgtt(int *status)
Definition: t_erfa_c.c:8301
void eraNum00a(double date1, double date2, double rmatn[3][3])
Definition: num00a.c:3
void eraPpp(double a[3], double b[3], double apb[3])
Definition: ppp.c:3
static void t_anp(int *status)
Definition: t_erfa_c.c:223
void eraA2af(int ndp, double angle, char *sign, int idmsf[4])
Definition: a2af.c:3
static void t_pr00(int *status)
Definition: t_erfa_c.c:6708
double eraObl06(double date1, double date2)
Definition: obl06.c:3
static void t_tttdb(int *status)
Definition: t_erfa_c.c:8636
void eraG2icrs(double dl, double db, double *dr, double *dd)
Definition: g2icrs.c:3
static void t_fk5hip(int *status)
Definition: t_erfa_c.c:3751
int eraJd2cal(double dj1, double dj2, int *iy, int *im, int *id, double *fd)
Definition: jd2cal.c:3
int main(int argc, char *argv[])
Definition: t_erfa_c.c:9056
void eraA2tf(int ndp, double angle, char *sign, int ihmsf[4])
Definition: a2tf.c:3
int eraDat(int iy, int im, int id, double fd, double *deltat)
Definition: dat.c:3
static void t_a2tf(int *status)
Definition: t_erfa_c.c:129
static void t_bi00(int *status)
Definition: t_erfa_c.c:1748
static void t_apcg(int *status)
Definition: t_erfa_c.c:261
void eraSxp(double s, double p[3], double sp[3])
Definition: sxp.c:3
static void t_tttcg(int *status)
Definition: t_erfa_c.c:8608
static void t_c2ibpn(int *status)
Definition: t_erfa_c.c:2104
double bm
Definition: erfam.h:39
double eraAnpm(double a)
Definition: anpm.c:3
int eraPvstar(double pv[2][3], double *ra, double *dec, double *pmr, double *pmd, double *px, double *rv)
Definition: pvstar.c:3
static void t_d2tf(int *status)
Definition: t_erfa_c.c:2861
void eraC2ixys(double x, double y, double s, double rc2i[3][3])
Definition: c2ixys.c:3
static void t_pas(int *status)
Definition: t_erfa_c.c:5213
int eraUt1tt(double ut11, double ut12, double dt, double *tt1, double *tt2)
Definition: ut1tt.c:3
static void t_pn00a(int *status)
Definition: t_erfa_c.c:5869
int eraTcgtt(double tcg1, double tcg2, double *tt1, double *tt2)
Definition: tcgtt.c:3
void eraPmat00(double date1, double date2, double rbp[3][3])
Definition: pmat00.c:3
static void t_s2p(int *status)
Definition: t_erfa_c.c:7830
static void t_pvppv(int *status)
Definition: t_erfa_c.c:6966
static void t_gst06a(int *status)
Definition: t_erfa_c.c:4254
static void t_atciqn(int *status)
Definition: t_erfa_c.c:1189
double bpn[3][3]
Definition: erfam.h:23
void eraPn00a(double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
Definition: pn00a.c:3
void eraPmp(double a[3], double b[3], double amb[3])
Definition: pmp.c:3
void eraApio(double sp, double theta, double elong, double phi, double hm, double xp, double yp, double refa, double refb, eraASTROM *astrom)
Definition: apio.c:3
static void t_s2pv(int *status)
Definition: t_erfa_c.c:7857
double eraGst94(double uta, double utb)
Definition: gst94.c:3
int eraAtoi13(const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *ri, double *di)
Definition: atoi13.c:3
static void t_pap(int *status)
Definition: t_erfa_c.c:5180
static void t_rx(int *status)
Definition: t_erfa_c.c:7371
#define ERFA_WGS72
Definition: erfam.h:142
void eraApco(double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, double theta, double elong, double phi, double hm, double xp, double yp, double sp, double refa, double refb, eraASTROM *astrom)
Definition: apco.c:3
static void t_ee00(int *status)
Definition: t_erfa_c.c:2981
void eraRefco(double phpa, double tc, double rh, double wl, double *refa, double *refb)
Definition: refco.c:3
static void t_epj(int *status)
Definition: t_erfa_c.c:3270
void eraPn(double p[3], double *r, double u[3])
Definition: pn.c:3
void eraBi00(double *dpsibi, double *depsbi, double *dra)
Definition: bi00.c:3
void eraCpv(double pv[2][3], double c[2][3])
Definition: cpv.c:3
static void t_c2i06a(int *status)
Definition: t_erfa_c.c:2060
static void t_ut1utc(int *status)
Definition: t_erfa_c.c:8748
static void t_bpn2xy(int *status)
Definition: t_erfa_c.c:1934
static void t_rm2v(int *status)
Definition: t_erfa_c.c:7293
static void t_ee06a(int *status)
Definition: t_erfa_c.c:3059
static void t_faju03(int *status)
Definition: t_erfa_c.c:3487
void eraC2tpe(double tta, double ttb, double uta, double utb, double dpsi, double deps, double xp, double yp, double rc2t[3][3])
Definition: c2tpe.c:3
static void t_num00a(int *status)
Definition: t_erfa_c.c:4668
int eraAtco13(double rc, double dc, double pr, double pd, double px, double rv, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob, double *eo)
Definition: atco13.c:3
static void t_fave03(int *status)
Definition: t_erfa_c.c:3687
double eraEe00a(double date1, double date2)
Definition: ee00a.c:3
static void t_fama03(int *status)
Definition: t_erfa_c.c:3547
static void t_cal2jd(int *status)
Definition: t_erfa_c.c:2685
static void t_apcg13(int *status)
Definition: t_erfa_c.c:340
static void t_fw2xy(int *status)
Definition: t_erfa_c.c:3877
double eraS00a(double date1, double date2)
Definition: s00a.c:3
static void t_apcs13(int *status)
Definition: t_erfa_c.c:865
static void t_fane03(int *status)
Definition: t_erfa_c.c:3587
static void t_eqeq94(int *status)
Definition: t_erfa_c.c:3377
void eraFk5hz(double r5, double d5, double date1, double date2, double *rh, double *dh)
Definition: fk5hz.c:3
static void t_jdcalf(int *status)
Definition: t_erfa_c.c:4489
void eraC2teqx(double rbpn[3][3], double gst, double rpom[3][3], double rc2t[3][3])
Definition: c2teqx.c:3
static void t_sp00(int *status)
Definition: t_erfa_c.c:7997
static void t_atciq(int *status)
Definition: t_erfa_c.c:1153
int eraAtio13(double ri, double di, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob)
Definition: atio13.c:3
static void t_dtf2d(int *status)
Definition: t_erfa_c.c:2954
int eraTaitt(double tai1, double tai2, double *tt1, double *tt2)
Definition: taitt.c:3
static void t_falp03(int *status)
Definition: t_erfa_c.c:3527
double eraS06(double date1, double date2, double x, double y)
Definition: s06.c:3
int eraStarpv(double ra, double dec, double pmr, double pmd, double px, double rv, double pv[2][3])
Definition: starpv.c:3
static void t_pvu(int *status)
Definition: t_erfa_c.c:7098
static void t_num00b(int *status)
Definition: t_erfa_c.c:4712
static void t_rv2m(int *status)
Definition: t_erfa_c.c:7332
static void t_gst00b(int *status)
Definition: t_erfa_c.c:4192
double eraS00b(double date1, double date2)
Definition: s00b.c:3
static void t_c2ixys(int *status)
Definition: t_erfa_c.c:2207
void eraNut00a(double date1, double date2, double *dpsi, double *deps)
Definition: nut00a.c:3
static void t_faur03(int *status)
Definition: t_erfa_c.c:3667
void eraAticq(double ri, double di, eraASTROM *astrom, double *rc, double *dc)
Definition: aticq.c:3
static void t_eo06a(int *status)
Definition: t_erfa_c.c:3153
void eraAtioq(double ri, double di, eraASTROM *astrom, double *aob, double *zob, double *hob, double *dob, double *rob)
Definition: atioq.c:3
void eraPnm80(double date1, double date2, double rmatpn[3][3])
Definition: pnm80.c:3
double v[3]
Definition: erfam.h:21
double eraSeps(double al, double ap, double bl, double bp)
Definition: seps.c:3
static void t_pxp(int *status)
Definition: t_erfa_c.c:7225
static void t_nut00b(int *status)
Definition: t_erfa_c.c:4874
int eraTttdb(double tt1, double tt2, double dtr, double *tdb1, double *tdb2)
Definition: tttdb.c:3
static void t_p2pv(int *status)
Definition: t_erfa_c.c:5106
void eraZp(double p[3])
Definition: zp.c:3
double eraDtdb(double date1, double date2, double ut, double elong, double u, double v)
Definition: dtdb.c:3
void eraNutm80(double date1, double date2, double rmatn[3][3])
Definition: nutm80.c:3
void eraRv2m(double w[3], double r[3][3])
Definition: rv2m.c:3
int eraUtcut1(double utc1, double utc2, double dut1, double *ut11, double *ut12)
Definition: utcut1.c:3
static void t_gst06(int *status)
Definition: t_erfa_c.c:4217
static void t_hfk5z(int *status)
Definition: t_erfa_c.c:4373
static void t_apio13(int *status)
Definition: t_erfa_c.c:1055
void eraS2pv(double theta, double phi, double r, double td, double pd, double rd, double pv[2][3])
Definition: s2pv.c:3
static void t_pv2s(int *status)
Definition: t_erfa_c.c:6805
double eraObl80(double date1, double date2)
Definition: obl80.c:3
double eb[3]
Definition: erfam.h:18
static void t_pb06(int *status)
Definition: t_erfa_c.c:5243
static void t_utctai(int *status)
Definition: t_erfa_c.c:8776
double eraEpb(double dj1, double dj2)
Definition: epb.c:3
void eraPn00(double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
Definition: pn00.c:3
void eraXys00a(double date1, double date2, double *x, double *y, double *s)
Definition: xys00a.c:3
double eraEo06a(double date1, double date2)
Definition: eo06a.c:3
static void t_icrs2g(int *status)
Definition: t_erfa_c.c:4304
int eraStarpm(double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
Definition: starpm.c:3
void eraP2pv(double p[3], double pv[2][3])
Definition: p2pv.c:3
static void t_tcbtdb(int *status)
Definition: t_erfa_c.c:8273
static void t_cpv(int *status)
Definition: t_erfa_c.c:2744
static void t_gmst00(int *status)
Definition: t_erfa_c.c:4092
void eraPn00b(double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
Definition: pn00b.c:3
static void t_xys06a(int *status)
Definition: t_erfa_c.c:8912
double eraFaju03(double t)
Definition: faju03.c:3
static void t_apco(int *status)
Definition: t_erfa_c.c:564
static void t_c2t00a(int *status)
Definition: t_erfa_c.c:2285
static void t_cr(int *status)
Definition: t_erfa_c.c:2783
int eraTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2)
Definition: tcbtdb.c:3
static void t_nut00a(int *status)
Definition: t_erfa_c.c:4846
static void t_numat(int *status)
Definition: t_erfa_c.c:4798
int eraTttcg(double tt1, double tt2, double *tcg1, double *tcg2)
Definition: tttcg.c:3
static void t_d2dtf(int *status)
Definition: t_erfa_c.c:2829
static void t_apio(int *status)
Definition: t_erfa_c.c:1002
void eraBp00(double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3])
Definition: bp00.c:3
double eraEect00(double date1, double date2)
Definition: eect00.c:3
static void t_fae03(int *status)
Definition: t_erfa_c.c:3447
static void t_rxp(int *status)
Definition: t_erfa_c.c:7420
static void t_pvup(int *status)
Definition: t_erfa_c.c:7143
double eraAnp(double a)
Definition: anp.c:3
void eraPn06(double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
Definition: pn06.c:3
double xpl
Definition: erfam.h:26
static void t_c2tpe(int *status)
Definition: t_erfa_c.c:2579
int eraGc2gd(int n, double xyz[3], double *elong, double *phi, double *height)
Definition: gc2gd.c:3
static void t_pvdpv(int *status)
Definition: t_erfa_c.c:6843
static void t_faf03(int *status)
Definition: t_erfa_c.c:3467
static void t_c2t06a(int *status)
Definition: t_erfa_c.c:2387
static void t_pdp(int *status)
Definition: t_erfa_c.c:5273
static void t_pmat76(int *status)
Definition: t_erfa_c.c:5500
static void t_c2ixy(int *status)
Definition: t_erfa_c.c:2160
double dl
Definition: erfam.h:40
double em
Definition: erfam.h:20
double bm1
Definition: erfam.h:22
void eraD2tf(int ndp, double days, char *sign, int ihmsf[4])
Definition: d2tf.c:3
void eraLdsun(double p[3], double e[3], double em, double p1[3])
Definition: ldsun.c:3
static void t_ppp(int *status)
Definition: t_erfa_c.c:6636
static void t_eect00(int *status)
Definition: t_erfa_c.c:3083
double eraFasa03(double t)
Definition: fasa03.c:3
static void t_pnm06a(int *status)
Definition: t_erfa_c.c:6500
static void t_epv00(int *status)
Definition: t_erfa_c.c:3323
static void t_nut06a(int *status)
Definition: t_erfa_c.c:4902
int eraEpv00(double date1, double date2, double pvh[2][3], double pvb[2][3])
Definition: epv00.c:3
static void t_h2fk5(int *status)
Definition: t_erfa_c.c:4329
void eraXy06(double date1, double date2, double *x, double *y)
Definition: xy06.c:3
static void t_aticq(int *status)
Definition: t_erfa_c.c:1371
static void t_c2t00b(int *status)
Definition: t_erfa_c.c:2336
void eraNum00b(double date1, double date2, double rmatn[3][3])
Definition: num00b.c:3
static void t_pvxpv(int *status)
Definition: t_erfa_c.c:7178
static void t_ir(int *status)
Definition: t_erfa_c.c:4409
static void t_fame03(int *status)
Definition: t_erfa_c.c:3567
static void t_tf2a(int *status)
Definition: t_erfa_c.c:8385
static void t_eform(int *status)
Definition: t_erfa_c.c:3108
double eraGmst06(double uta, double utb, double tta, double ttb)
Definition: gmst06.c:3
void eraC2t06a(double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
Definition: c2t06a.c:3
void eraApci(double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, eraASTROM *astrom)
Definition: apci.c:3
static void t_gc2gd(int *status)
Definition: t_erfa_c.c:3934
static int verbose
Definition: t_erfa_c.c:4
static void t_pm(int *status)
Definition: t_erfa_c.c:5544
void eraC2i00a(double date1, double date2, double rc2i[3][3])
Definition: c2i00a.c:3
static void t_rxpv(int *status)
Definition: t_erfa_c.c:7463
int eraCal2jd(int iy, int im, int id, double *djm0, double *djm)
Definition: cal2jd.c:3
static void t_atioq(int *status)
Definition: t_erfa_c.c:1511
int eraTtut1(double tt1, double tt2, double dt, double *ut11, double *ut12)
Definition: ttut1.c:3
static void viv(int ival, int ivalok, const char *func, const char *test, int *status)
Definition: t_erfa_c.c:24
void eraPpsp(double a[3], double s, double b[3], double apsb[3])
Definition: ppsp.c:3
static void t_xy06(int *status)
Definition: t_erfa_c.c:8832
static void t_sxpv(int *status)
Definition: t_erfa_c.c:8148
static void t_plan94(int *status)
Definition: t_erfa_c.c:5338
void eraRxpv(double r[3][3], double pv[2][3], double rpv[2][3])
Definition: rxpv.c:3
static void t_num06a(int *status)
Definition: t_erfa_c.c:4755
static void t_ttut1(int *status)
Definition: t_erfa_c.c:8664
static void t_c2i00b(int *status)
Definition: t_erfa_c.c:2016
static void t_fasa03(int *status)
Definition: t_erfa_c.c:3647
static void t_nut80(int *status)
Definition: t_erfa_c.c:4930
static void t_trxpv(int *status)
Definition: t_erfa_c.c:8529
static void t_tttai(int *status)
Definition: t_erfa_c.c:8580
void eraPr00(double date1, double date2, double *dpsipr, double *depspr)
Definition: pr00.c:3
double eraFave03(double t)
Definition: fave03.c:3
void eraApcs13(double date1, double date2, double pv[2][3], eraASTROM *astrom)
Definition: apcs13.c:3
int eraTdbtcb(double tdb1, double tdb2, double *tcb1, double *tcb2)
Definition: tdbtcb.c:3
double eraFama03(double t)
Definition: fama03.c:3
void eraPvdpv(double a[2][3], double b[2][3], double adb[2])
Definition: pvdpv.c:3
static void t_gst94(int *status)
Definition: t_erfa_c.c:4279
static void t_ee00b(int *status)
Definition: t_erfa_c.c:3034
static void t_pmat06(int *status)
Definition: t_erfa_c.c:5456
static void t_trxp(int *status)
Definition: t_erfa_c.c:8486
double eraEpj(double dj1, double dj2)
Definition: epj.c:3
static void t_tdbtt(int *status)
Definition: t_erfa_c.c:8357
void eraLdn(int n, eraLDBODY b[], double ob[3], double sc[3], double sn[3])
Definition: ldn.c:3
int eraEform(int n, double *a, double *f)
Definition: eform.c:3
void eraC2tcio(double rc2i[3][3], double era, double rpom[3][3], double rc2t[3][3])
Definition: c2tcio.c:3
static void t_prec76(int *status)
Definition: t_erfa_c.c:6735
void eraPn06a(double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
Definition: pn06a.c:3
static void t_sxp(int *status)
Definition: t_erfa_c.c:8114
void eraPvppv(double a[2][3], double b[2][3], double apb[2][3])
Definition: pvppv.c:3
double eraEors(double rnpb[3][3], double s)
Definition: eors.c:3
static void t_bp00(int *status)
Definition: t_erfa_c.c:1776
int eraTf2d(char s, int ihour, int imin, double sec, double *days)
Definition: tf2d.c:4
void eraPvu(double dt, double pv[2][3], double upv[2][3])
Definition: pvu.c:3
int eraAf2a(char s, int ideg, int iamin, double asec, double *rad)
Definition: af2a.c:4
static void t_obl06(int *status)
Definition: t_erfa_c.c:5002
static void t_gc2gde(int *status)
Definition: t_erfa_c.c:3984
static void t_ee00a(int *status)
Definition: t_erfa_c.c:3009
double eraFaur03(double t)
Definition: faur03.c:3
double diurab
Definition: erfam.h:30
static void t_pfw06(int *status)
Definition: t_erfa_c.c:5306
void eraCp(double p[3], double c[3])
Definition: cp.c:3
int eraGd2gce(double a, double f, double elong, double phi, double height, double xyz[3])
Definition: gd2gce.c:3
void eraP06e(double date1, double date2, double *eps0, double *psia, double *oma, double *bpa, double *bqa, double *pia, double *bpia, double *epsa, double *chia, double *za, double *zetaa, double *thetaa, double *pa, double *gam, double *phi, double *psi)
Definition: p06e.c:3
static void t_era00(int *status)
Definition: t_erfa_c.c:3402