555 lines
14 KiB
Go
555 lines
14 KiB
Go
// Copyright 2022 HE Boliang
|
|
// All rights reserved.
|
|
|
|
package gofa
|
|
|
|
// Fundamental Arguments (14)
|
|
|
|
/*
|
|
Fad03 mean elongation of the Moon from the Sun.
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 D, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Fad03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean elongation of the Moon from the Sun (IERS Conventions 2003). */
|
|
a = fmod(1072260.703692+
|
|
t*(1602961601.2090+
|
|
t*(-6.3706+
|
|
t*(0.006593+
|
|
t*(-0.00003169)))), TURNAS) * DAS2R
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fae03 mean longitude of Earth.
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Earth, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Fae03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Earth (IERS Conventions 2003). */
|
|
a = fmod(1.753470314+628.3075849991*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Faf03 mean longitude of the Moon minus mean longitude of the ascending node.
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 F, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Faf03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of the Moon minus that of the ascending node */
|
|
/* (IERS Conventions 2003). */
|
|
a = fmod(335779.526232+
|
|
t*(1739527262.8478+
|
|
t*(-12.7512+
|
|
t*(-0.001037+
|
|
t*(0.00000417)))), TURNAS) * DAS2R
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Faju03 Mean longitude of Jupiter
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Jupiter, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Faju03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Jupiter (IERS Conventions 2003). */
|
|
a = fmod(0.599546497+52.9690962641*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fal03 Mean anomaly of the Moon
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 l, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Fal03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean anomaly of the Moon (IERS Conventions 2003). */
|
|
a = fmod(485868.249036+
|
|
t*(1717915923.2178+
|
|
t*(31.8792+
|
|
t*(0.051635+
|
|
t*(-0.00024470)))), TURNAS) * DAS2R
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Falp03 Mean anomaly of the Sun
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 l', radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Falp03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean anomaly of the Sun (IERS Conventions 2003). */
|
|
a = fmod(1287104.793048+
|
|
t*(129596581.0481+
|
|
t*(-0.5532+
|
|
t*(0.000136+
|
|
t*(-0.00001149)))), TURNAS) * DAS2R
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fama03 Mean longitude of Mars
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Mars, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Fama03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Mars (IERS Conventions 2003). */
|
|
a = fmod(6.203480913+334.0612426700*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fame03 Mean longitude of Mercury
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Mercury, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Fame03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Mercury (IERS Conventions 2003). */
|
|
a = fmod(4.402608842+2608.7903141574*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fane03 Mean longitude of Neptune
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Neptune, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is adapted from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Fane03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Neptune (IERS Conventions 2003). */
|
|
a = fmod(5.311886287+3.8133035638*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Faom03 Mean longitude of the Moon's ascending node
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 Omega, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J., 1994, Astron.Astrophys. 282, 663-683.
|
|
*/
|
|
func Faom03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of the Moon's ascending node */
|
|
/* (IERS Conventions 2003). */
|
|
a = fmod(450160.398036+
|
|
t*(-6962890.5431+
|
|
t*(7.4722+
|
|
t*(0.007702+
|
|
t*(-0.00005939)))), TURNAS) * DAS2R
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fapa03 General accumulated precession in longitude
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 general precession in longitude, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003). It
|
|
is taken from Kinoshita & Souchay (1990) and comes originally
|
|
from Lieske et al. (1977).
|
|
|
|
References:
|
|
|
|
Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron.
|
|
48, 187
|
|
|
|
Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977,
|
|
Astron.Astrophys. 58, 1-16
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
*/
|
|
func Fapa03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* General accumulated precession in longitude. */
|
|
a = (0.024381750 + 0.00000538691*t) * t
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fasa03 Mean longitude of Saturn
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Saturn, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Fasa03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Saturn (IERS Conventions 2003). */
|
|
a = fmod(0.874016757+21.3299104960*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Faur03 Mean longitude of Uranus
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Uranus, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
is adapted from Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
*/
|
|
func Faur03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Uranus (IERS Conventions 2003). */
|
|
a = fmod(5.481293872+7.4781598567*t, D2PI)
|
|
|
|
return a
|
|
}
|
|
|
|
/*
|
|
Fave03 Mean longitude of Venus
|
|
|
|
Fundamental argument, IERS Conventions (2003)
|
|
|
|
Given:
|
|
t float64 TDB, Julian centuries since J2000.0 (Note 1)
|
|
|
|
Returned (function value):
|
|
float64 mean longitude of Venus, radians (Note 2)
|
|
|
|
Notes:
|
|
|
|
1) Though t is strictly TDB, it is usually more convenient to use
|
|
TT, which makes no significant difference.
|
|
|
|
2) The expression used is as adopted in IERS Conventions (2003) and
|
|
comes from Souchay et al. (1999) after Simon et al. (1994).
|
|
|
|
References:
|
|
|
|
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
IERS Technical Note No. 32, BKG (2004)
|
|
|
|
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M.,
|
|
Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
|
|
|
|
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999,
|
|
Astron.Astrophys.Supp.Ser. 135, 111
|
|
*/
|
|
func Fave03(t float64) float64 {
|
|
var a float64
|
|
|
|
/* Mean longitude of Venus (IERS Conventions 2003). */
|
|
a = fmod(3.176146697+1021.3285546211*t, D2PI)
|
|
|
|
return a
|
|
}
|