// calc distance and true longitude
            public void CalcDistLong(double d, out double r, out double lon)
            {
                double de = orbit_.e(d);
                double dE = orbit_.E(d);
                double da = orbit_.a(d);
                double xv = da * (CosD(dE) - de);
                double yv = da * Math.Sqrt(1.0 - de * de) * SinD(dE);

                double v = Atan2D(yv, xv);          // true anomaly

                r   = Math.Sqrt(xv * xv + yv * yv); // distance
                lon = Rev(v + orbit_.w(d));         // true longitude
            }