3 int eraGc2gde (
double a,
double f,
double xyz[3],
4 double *elong,
double *phi,
double *
height )
63 double aeps2, e2, e4t, ec2, ec, b, x, y, z, p2, absz, p, s0, pn, zc,
64 c0, c02, c03, s02, s03, a02, a0, a03, d0, f0, b0, s1,
73 if ( f < 0.0 || f >= 1.0 )
return -1;
74 if ( a <= 0.0 )
return -2;
81 if ( ec2 <= 0.0 )
return -1;
94 *elong = p2 > 0.0 ? atan2(y, x) : 0.0;
119 d0 = zc*a03 + e2*s03;
120 f0 = pn*a03 - e2*c03;
123 b0 = e4t * s02 * c02 * pn * (a0 - ec);
125 cc = ec * (f0*f0 - b0*c0);
131 *height = (p*cc + absz*s1 - a * sqrt(ec2*s12 + cc2)) /
141 if ( z < 0 ) *phi = -*phi;
int eraGc2gde(double a, double f, double xyz[3], double *elong, double *phi, double *height)