/* Display ecliptic longitude and latitude for
* equinox of date. Input is equatorial rectangular
* coordinates for equinox J2000.
*/
#include "kep.h"
int lonlat( pp, J, polar, ofdate )
double pp[], J, polar[];
int ofdate; /* 1 means precess from J2000 to date J. */
{
double s[3], x, y, z, yy, zz, r;
int i;
/* Make local copy of position vector
* and calculate radius.
*/
r = 0.0;
for( i=0; i<3; i++ )
{
x = pp[i];
s[i] = x;
r += x * x;
}
r = sqrt(r);
/* Precess to equinox of date J
*/
if( ofdate )
precess( s, J, -1 );
/* Convert from equatorial to ecliptic coordinates
*/
epsiln(J);
yy = s[1];
zz = s[2];
x = s[0];
y = coseps * yy + sineps * zz;
z = -sineps * yy + coseps * zz;
yy = zatan2( x, y );
zz = asin( z/r );
polar[0] = yy;
polar[1] = zz;
polar[2] = r;
if( prtflg == 0 )
return(0);
printf( "ecliptic long" );
dms( yy );
printf( " lat" );
dms( zz );
printf( " rad %.6E\n", r );
return(0);
}
syntax highlighted by Code2HTML, v. 0.9.1