7
Compute yabs from yabs/order (in mm!) for rotation of CCD
9
Input wavelemgth table needs two (R*4) columns:
15
1) Input / output wavelength table (line.tbl)
16
2) Input table with coefficients of y-fit
20
Compute yabs for (xabs/order)
31
/* general Midas includes */
36
#include <midas_def.h>
39
/* FEROS specific includes */
41
#include <proto_nrutil.h>
42
#include <proto_mutil.h>
47
char wlc_table[60], pos_table[60], line[80];
49
int i, j, iav, inull, tid1, tid2, ncol, nrow, nsort, acol, arow;
50
int icol[3], null[2], select, nlast, nfirst, fit_deg;
53
float rnull, col[2], xabs, yabs;
59
TCMNUL(&inull,&rnull,&dnull);
61
SCKGETC ("IN_A", 1, 60, &iav, wlc_table);
62
SCKGETC ("IN_B", 1, 60, &iav, pos_table);
64
TCTOPN (wlc_table, F_IO_MODE, &tid1);
66
TCTOPN (pos_table, F_D_MODE, &tid2);
67
SCDRDI(tid2, "FIRSTORD", 1, 1, &iav, &nfirst, &dunit, &dnul);
68
SCDRDI(tid2, "ECHORD", 1, 1, &iav, &nlast, &dunit, &dnul);
69
SCDRDI(tid2, "FITORD", 1, 1, &iav, &fit_deg, &dunit, &dnul);
71
TCIGET (tid1, &ncol, &nrow, &nsort, &acol, &arow);
73
/* columns :X and :Y must exist! */
75
ad = dvector (1, fit_deg);
77
TCCSER (tid1, ":X", &icol[0]);
78
TCCSER (tid1, ":Y", &icol[1]);
79
TCCSER(tid1, ":YABS", &icol[2]);
82
TCCINI(tid1, D_R4_FORMAT, 1, "F8.4", "", ":YABS", &icol[2]);
83
sprintf(line, "column YABS created %d",icol[2]);
88
sprintf(line, "column YABS found");
92
/* read input table */
94
for (i = 1; i <= nrow; i++)
96
TCSGET(tid1, i, &select);
98
TCRRDR (tid1, i, 2, icol, col, null);
104
sprintf(line, "FIT%04i", nlast - (j - 1));
106
SCDRDD(tid2, line, 1, fit_deg, &iav, &ad[1], &dunit, &dnul);
107
yabs = eval_dpoly (xabs, ad, fit_deg);
108
TCEWRR(tid1, i, icol[2], &yabs);
115
/* release memory and exit */
117
free_dvector(ad, 1, fit_deg);