ftp.nice.ch/pub/next/science/astronomy/usat-NeXT.N.bs.tar.gz#/usat/almanacAA/angles.c

This is angles.c in view mode; [Download] [Up]

/************************************************************************/
/* angles.c 								*/
/*									*/
/* Sun - object - earth angles and distances.				*/
/*									*/
/* q (object), e (earth), and p (q minus e) are input vectors.		*/
/* The answers are posted in the following global locations:		*/
/*									*/
/* SE				earth-sun distance			*/
/* SO				object-sun distance			*/
/* EO				object-earth distance			*/
/* pq				cosine of sun-object-earth angle	*/
/* ep				-cosine of sun-earth-object angle	*/
/* qe				cosine of earth-sun-object angle	*/
/************************************************************************/

/***** description
 *
 *	$Id: angles.c,v 1.2 1993/04/21 14:59:54 craig Exp $
 *
 */

/***** modification history
 *
 *	$Log: angles.c,v $
 * Revision 1.2  1993/04/21  14:59:54  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 *****/

double SE = 0.0;		/* earth-sun distance */
double SO = 0.0;		/* object-sun distance */
double EO = 0.0;		/* object-earth distance */

double pq = 0.0;		/* cosine of sun-object-earth angle */
double ep = 0.0;		/* -cosine of sun-earth-object angle */
double qe = 0.0;		/* cosine of earth-sun-object angle */

/**********/
/* angles */
/**********/

int    angles (double *p, double *q, double *e)
{
    int    i;
    double a, b, s;

    EO = 0.0;
    SE = 0.0;
    SO = 0.0;
    pq = 0.0;
    ep = 0.0;
    qe = 0.0;

    for (i = 0; i < 3; i++)
    {
	a = e[i];
	b = q[i];
	s = p[i];
	EO += s * s;
	SE += a * a;
	SO += b * b;
	pq += s * b;
	ep += a * s;
	qe += b * a;
    }

    EO = sqrt (EO);			/* Distance between Earth and
					   object */
    SO = sqrt (SO);			/* Sun - object */
    SE = sqrt (SE);			/* Sun - earth */
    pq /= EO * SO;			/* cosine of sun-object-earth */
    ep /= SE * EO;			/* -cosine of sun-earth-object */
    qe /= SO * SE;			/* cosine of earth-sun-object */

    return (0);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.