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

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

/***********************************************************/
/* deflec.c						   */
/*							   */
/* Correct for light deflection due to solar gravitation.  */
/* AA page B37						   */
/*							   */
/* SE, pq, etc. were computed earlier by angles.c.	   */
/***********************************************************/

/***** description
 *
 *	$Id: deflec.c,v 1.5 1993/04/30 18:23:54 craig Exp $
 *
 */

/***** modification history
 *
 *	$Log: deflec.c,v $
 * Revision 1.5  1993/04/30  18:23:54  craig
 * Changed the output call from sending the output to stdout to
 * sending the output to the file outfile (which can be stdout).
 *
 * Revision 1.4  1993/04/22  19:38:51  craig
 * minor changes.
 *
 * Revision 1.3  1993/04/21  21:04:59  craig
 * Changed the path of the satellite.h include.
 *
 * Revision 1.2  1993/04/21  15:10:12  craig
 * First working version. Ran through indent and converted to ansi.
 * Added hooks to work with the satellite programs.
 *
 *
 */

/***** include files *****/

#include <math.h>
#include "aaproto.h"
#include "satellite.h"

/***** global variables *****/

/* from cnstinit.c */

extern int prtflg;		/* display enable flag */

extern FILE *outfile;		/* the output file */

extern double dp[3];		/* correction vector, saved for display */

extern struct MCONSTANTS mcnsts;

/* from angles.c */

extern double SE;		/* earth-sun distance */
extern double SO;		/* object-sun distance */
extern double pq;		/* cos of sun-object-earth angle */
extern double ep;		/* -cos of sun-earth-object angle */
extern double qe;		/* cos of earth-sun-object angle */


/**************/
/* relativity */
/**************/

/* p = unit vector from earth to object */
/* q = heliocentric ecliptic retangular coordinates of earth */
/* e = heliocentric ecliptic retangular coordinates of object */

int    relativity (double *p, double *q, double *e)
{
    double C;
    int    i;

    C = 1.974e-8 / (SE * (1.0 + qe));

    for (i = 0; i < 3; i++)
    {
	dp[i] = C * (pq * e[i] / SE - ep * q[i] / SO);
	p[i] += dp[i];
    }

    if (prtflg)
    {
	fprintf (outfile, "elongation from sun %.2f degrees, ", 
	    acos (-ep) / mcnsts.de2ra);
    }

    showcor ("light defl.", p, dp);

    return (0);
}

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