156 const double zbreak = 0.242535625;
159 double c1,c2,sphi,cphi,st,ce,xaeo,yaeo,zaeo,v[3],
160 xmhdo,ymhdo,zmhdo,az,sz,zdo,tz,dref,zdt,
161 xaet,yaet,zaet,xmhda,ymhda,zmhda,diurab,f,hma;
178 if (c ==
'r' || c ==
'R') {
180 }
else if (c ==
'h' || c ==
'H') {
206 xaeo = sphi*xmhdo-cphi*zmhdo;
208 zaeo = cphi*xmhdo+sphi*zmhdo;
212 if (xaeo != 0.0 || yaeo != 0.0) {
213 az = atan2(yaeo,xaeo);
219 sz = sqrt(xaeo*xaeo+yaeo*yaeo);
220 zdo = atan2(sz,zaeo);
227 if (zaeo >= zbreak) {
231 dref = (aoprms[10]+aoprms[11]*tz*tz)*tz;
236 palRefro(zdo,aoprms[4],aoprms[5],aoprms[6],aoprms[7],
237 aoprms[8],aoprms[0],aoprms[9],1e-8,&dref);
249 xmhda = sphi*xaet+cphi*zaet;
251 zmhda = -cphi*xaet+sphi*zaet;
255 f = (1.0-diurab*ymhda);
257 v[1] = f*(ymhda+diurab);
void palRefro(double zobs, double hm, double tdk, double pmb, double rh, double wl, double phi, double tlr, double eps, double *ref)
void palDcc2s(double v[3], double *a, double *b)
double palDranrm(double angle)
void palDcs2c(double a, double b, double v[3])