|  | #include "astro.h" | 
|  |  | 
|  | void | 
|  | star(void) | 
|  | { | 
|  | double xm, ym, zm, dxm, dym, dzm; | 
|  | double xx, yx, zx, yy, zy, zz, tau; | 
|  | double capt0, capt1, capt12, capt13, sl, sb, cl; | 
|  |  | 
|  | /* | 
|  | *	remove E-terms of aberration | 
|  | *	except when finding catalog mean places | 
|  | */ | 
|  |  | 
|  | alpha += (.341/(3600.*15.))*sin((alpha+11.26)*15.*radian) | 
|  | /cos(delta*radian); | 
|  | delta += (.341/3600.)*cos((alpha+11.26)*15.*radian) | 
|  | *sin(delta*radian) - (.029/3600.)*cos(delta*radian); | 
|  |  | 
|  | /* | 
|  | *	correct for proper motion | 
|  | */ | 
|  |  | 
|  | tau = (eday - epoch)/365.24220; | 
|  | alpha += tau*da/3600.; | 
|  | delta += tau*dd/3600.; | 
|  | alpha *= 15.*radian; | 
|  | delta *= radian; | 
|  |  | 
|  | /* | 
|  | *	convert to rectangular coordinates merely for convenience | 
|  | */ | 
|  |  | 
|  | xm = cos(delta)*cos(alpha); | 
|  | ym = cos(delta)*sin(alpha); | 
|  | zm = sin(delta); | 
|  |  | 
|  | /* | 
|  | *	convert mean places at epoch of startable to current | 
|  | *	epoch (i.e. compute relevant precession) | 
|  | */ | 
|  |  | 
|  | capt0 = (epoch - 18262.427)/36524.220e0; | 
|  | capt1 = (eday - epoch)/36524.220; | 
|  | capt12 = capt1*capt1; | 
|  | capt13 = capt12*capt1; | 
|  |  | 
|  | xx = - (.00029696+26.e-8*capt0)*capt12 | 
|  | - 13.e-8*capt13; | 
|  | yx =  -(.02234941+1355.e-8*capt0)*capt1 | 
|  | - 676.e-8*capt12 + 221.e-8*capt13; | 
|  | zx = -(.00971690-414.e-8*capt0)*capt1 | 
|  | + 207.e-8*capt12 + 96.e-8*capt13; | 
|  | yy = - (.00024975+30.e-8*capt0)*capt12 | 
|  | - 15.e-8*capt13; | 
|  | zy = -(.00010858+2.e-8*capt0)*capt12; | 
|  | zz = - (.00004721-4.e-8*capt0)*capt12; | 
|  |  | 
|  | dxm =  xx*xm + yx*ym + zx*zm; | 
|  | dym = - yx*xm + yy*ym + zy*zm; | 
|  | dzm = - zx*xm + zy*ym + zz*zm; | 
|  |  | 
|  | xm = xm + dxm; | 
|  | ym = ym + dym; | 
|  | zm = zm + dzm; | 
|  |  | 
|  | /* | 
|  | *	convert to mean ecliptic system of date | 
|  | */ | 
|  |  | 
|  | alpha = atan2(ym, xm); | 
|  | delta = atan2(zm, sqrt(xm*xm+ym*ym)); | 
|  | cl = cos(delta)*cos(alpha); | 
|  | sl = cos(delta)*sin(alpha)*cos(obliq) + sin(delta)*sin(obliq); | 
|  | sb = -cos(delta)*sin(alpha)*sin(obliq) + sin(delta)*cos(obliq); | 
|  | lambda = atan2(sl, cl); | 
|  | beta = atan2(sb, sqrt(cl*cl+sl*sl)); | 
|  | rad = 1.e9; | 
|  | if(px != 0) | 
|  | rad = 20600/px; | 
|  | motion = 0; | 
|  | semi = 0; | 
|  |  | 
|  | helio(); | 
|  | geo(); | 
|  | } |