Always compute lunar / solar terms rather than if time changes by more than 30 minutes
parent
7b51b2256b
commit
ef2f9c5a9e
50
SGDP4.cpp
50
SGDP4.cpp
|
@ -785,34 +785,30 @@ void SGDP4::DeepPeriodics(const double& sinio, const double& cosio, const double
|
||||||
double sinis = sin(xinc);
|
double sinis = sin(xinc);
|
||||||
double cosis = cos(xinc);
|
double cosis = cos(xinc);
|
||||||
|
|
||||||
if (fabs(d_savtsn_ - t) >= 30.0) {
|
double zm = d_zmos_ + ZNS * t;
|
||||||
d_savtsn_ = t;
|
double zf = zm + 2.0 * ZES * sin(zm);
|
||||||
|
double sinzf = sin(zf);
|
||||||
|
double f2 = 0.5 * sinzf * sinzf - 0.25;
|
||||||
|
double f3 = -0.5 * sinzf * cos(zf);
|
||||||
|
double ses = d_se2_ * f2 + d_se3_ * f3;
|
||||||
|
double sis = d_si2_ * f2 + d_si3_ * f3;
|
||||||
|
double sls = d_sl2_ * f2 + d_sl3_ * f3 + d_sl4_ * sinzf;
|
||||||
|
|
||||||
double zm = d_zmos_ + ZNS * t;
|
sghs = d_sgh2_ * f2 + d_sgh3_ * f3 + d_sgh4_ * sinzf;
|
||||||
double zf = zm + 2.0 * ZES * sin(zm);
|
shs = d_sh2_ * f2 + d_sh3_ * f3;
|
||||||
double sinzf = sin(zf);
|
zm = d_zmol_ + ZNL * t;
|
||||||
double f2 = 0.5 * sinzf * sinzf - 0.25;
|
zf = zm + 2.0 * ZEL * sin(zm);
|
||||||
double f3 = -0.5 * sinzf * cos(zf);
|
sinzf = sin(zf);
|
||||||
double ses = d_se2_ * f2 + d_se3_ * f3;
|
f2 = 0.5 * sinzf * sinzf - 0.25;
|
||||||
double sis = d_si2_ * f2 + d_si3_ * f3;
|
f3 = -0.5 * sinzf * cos(zf);
|
||||||
double sls = d_sl2_ * f2 + d_sl3_ * f3 + d_sl4_ * sinzf;
|
double sel = d_ee2_ * f2 + d_e3_ * f3;
|
||||||
|
double sil = d_xi2_ * f2 + d_xi3_ * f3;
|
||||||
sghs = d_sgh2_ * f2 + d_sgh3_ * f3 + d_sgh4_ * sinzf;
|
double sll = d_xl2_ * f2 + d_xl3_ * f3 + d_xl4_ * sinzf;
|
||||||
shs = d_sh2_ * f2 + d_sh3_ * f3;
|
sghl = d_xgh2_ * f2 + d_xgh3_ * f3 + d_xgh4_ * sinzf;
|
||||||
zm = d_zmol_ + ZNL * t;
|
shl = d_xh2_ * f2 + d_xh3_ * f3;
|
||||||
zf = zm + 2.0 * ZEL * sin(zm);
|
pe = ses + sel;
|
||||||
sinzf = sin(zf);
|
pinc = sis + sil;
|
||||||
f2 = 0.5 * sinzf * sinzf - 0.25;
|
pl = sls + sll;
|
||||||
f3 = -0.5 * sinzf * cos(zf);
|
|
||||||
double sel = d_ee2_ * f2 + d_e3_ * f3;
|
|
||||||
double sil = d_xi2_ * f2 + d_xi3_ * f3;
|
|
||||||
double sll = d_xl2_ * f2 + d_xl3_ * f3 + d_xl4_ * sinzf;
|
|
||||||
sghl = d_xgh2_ * f2 + d_xgh3_ * f3 + d_xgh4_ * sinzf;
|
|
||||||
shl = d_xh2_ * f2 + d_xh3_ * f3;
|
|
||||||
pe = ses + sel;
|
|
||||||
pinc = sis + sil;
|
|
||||||
pl = sls + sll;
|
|
||||||
}
|
|
||||||
|
|
||||||
double pgh = sghs + sghl;
|
double pgh = sghs + sghl;
|
||||||
double ph = shs + shl;
|
double ph = shs + shl;
|
||||||
|
|
Loading…
Reference in New Issue