float phi1, float lambda0, float c, float s, float e, int n, float[] ret_val)
float phi1, float lambda0, float c, float s, float e, int n)
    final public static float[] earth_circle(	float phi1, float lambda0, float c, float s, float e,        int n, float[] ret_val)    {	float Az, cosAz, sinAz;	float cosphi1 = (float)Math.cos(phi1);	float sinphi1 = (float)Math.sin(phi1);	float sinc = (float)Math.sin(c);	float cosc = (float)Math.cos(c);	int end = n<<1;//*2//	float[] ret_val = new float[end];	float inc = e/n;	Az = s;	// generate the points in clockwise order (conforming to	// internal standard!)	for (int i = 0; i < end; i+=2, Az+=inc) {	    cosAz = (float)Math.cos(Az);	    sinAz = (float)Math.sin(Az);	    ret_val[i] =		(float)Math.asin(sinphi1*cosc + cosphi1*sinc*cosAz);	    ret_val[i+1] = 		(float)Math.atan2(		    sinc*sinAz, cosphi1*cosc - sinphi1*sinc*cosAz) + lambda0;	}	return ret_val;    }