Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#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();
}