This is lonlat.c in view mode; [Download] [Up]
/********************************************************/ /* lonlat.c */ /* */ /* Display ecliptic longitude and latitude for */ /* equinox of date. Input is equatorial rectangular */ /* coordinates for equinox J2000. */ /********************************************************/ /***** description * * $Id: lonlat.c,v 1.4 1993/04/30 18:16:50 craig Exp $ * */ /***** modification history * * $Log: lonlat.c,v $ * Revision 1.4 1993/04/30 18:16:50 craig * Changed the output calls from sending the output to stdout to * sending the output to the file outfile (which can be stdout). * * Revision 1.3 1993/04/22 19:47:32 craig * minor changes. * * Revision 1.2 1993/04/21 15:19:24 craig * First working version. Ran through indent and converted to ansi. * Added hooks for working with the satellite programs. * * */ /***** include files *****/ #include <math.h> #include "aaproto.h" /***** global variables *****/ /* from cnstinit.c */ extern int prtflg; extern FILE *outfile; /* from epsiln.c */ extern double coseps; extern double sineps; /**********/ /* lonlat */ /**********/ int lonlat (double *pp, double J, double *polar) { int i; double s[3], x, y, z, yy, zz, r; /* 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 */ 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 = matan2 (y, x); zz = asin (z / r); polar[0] = yy; polar[1] = zz; polar[2] = r; if (prtflg == 0) { return (0); } fprintf (outfile, "ecliptic long"); dms (outfile, yy); fprintf (outfile, " lat"); dms (outfile, zz); fprintf (outfile, " rad %.6E\n", r); return (0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.