hp41programs

OblNutTS

Nutation - Obliquity of the Ecliptic - Sidereal Time for the HP-41


Overview
 

 1°) Nutation in Longitude & in Obliquity
 2°) Obliquity of the Ecliptic
 3°) Sidereal Time at Greenwich
 

1°) Nutation in Longitude & in Obliquity
 

-The complete series involve more than 1000 terms, and the following program uses the first few terms only:
-The nutation in longitude Dpsi is obtained with an accuracy of  0"5
  and the nutation in obliquity De with an accuracy of   0"1
-Add more terms if you want to get a better accuracy.
 

Data Register:       •  R00 = T = number of millenia of 365250 Julian days since 2000/01/01 0h     ( this register is to be initialized before executing "NUT" )
Flags: /
Subroutines: /
 
 

01  LBL "NUT"
02  DEG
03  215
04  RCL 00
05  19341
06  *
07  -
08  STO Y
09  256
10  P-R
11  .536
12  /
13  R^
14  ST+ X       
15  2
16  P-R
17  ST+ T
18  CLX
19  3
20  *
21  -
22  720015
23  RCL 00      
24  *
25  20
26  +
27  16
28  P-R
29  ST- T
30  CLX
31  2.3
32  *
33  +
34  9625358
35  RCL 00      
36  *
37  63
38  +
39  3
40  P-R
41  ST+ T
42  RDN
43  ST+ X       
44  -
45   E5
46  ST/ Z
47  /
48  END

 
   ( 91 bytes / SIZE 001 )
 
 

      STACK        INPUTS      OUTPUTS
           Y             /      De ( deg )
           X             /      Dpsi ( deg )

 where  Dpsi  is the nutation in longitude
   and     De   is the nutation in obliquity.

Example:    With  T = 1  ( 3000/01/08  0h )

  1  STO 00   XEQ "NUT"  >>>>   Dpsi = 0.00353°   X<>Y   De = -0.00198°
 

2°) Obliquity of the Ecliptic
 

-The following program uses the series given in reference [3] to compute the obliquity of the ecliptic.
 

Data Register:       •  R00 = T = number of millenia of 365250 Julian days since 2000/01/01 0h     ( this register is to be initialized before executing "OBL" )

Flag:  F01     if flag F01 is set, "OBL" calculates the mean obliquity and the true obliquity,
                      if flag F01 is clear, "OBL" calculates the mean obliquity only.

Subroutine:  "NUT" if F01 is set, none otherwise.
 
 

01  LBL "OBL"
02  DEG
03  CLST
04  FS? 01
05  XEQ "NUT"
06  X<>Y
07  2
08  RCL 00
09  ST+ Y
10  *
11  CHS
12  557
13  +
14  RCL 00      
15  *
16  5
17  -
18  RCL 00      
19  *
20  130102
21  -
22  RCL 00
23  *
24  23439280   
25  +
26   E6
27  /
28  ST+ Y
29  HMS         
30  X<>Y
31  HMS
32  END

 
   ( 62 bytes / SIZE 001 )
 
 

      STACK        INPUTS SF01-OUTPUTS CF01-OUTPUTS
           Z             /      Dpsi ( deg )            0
           Y             /        em ( °. ' " )       em ( °. ' " )
           X              /        e   ( °. ' " )       em ( °. ' " )

  where  em  is the mean obliquity
    and    e    is the true obliquity

  Z-output is used by  "ST" below

Example:   Once again with T = 1

 SF 01    1  STO 00   XEQ "OBL"  >>>>  e = 23°18'27"89   RDN  em = 23°18'35"02
 CF 01    1  STO 00        R/S          >>>>  em = 23°18'35"02 = X- and Y-registers.

-"OBL" is of course much faster if flag F01 is clear!
- em  is calculated more accurately than e.
 

3°) Sidereal Time at Greenwich
 

-A short routine which computes the mean sidereal time is listed in "Rising-Transit-Setting for the HP-41"
-The following one is more accurate and take the nutation into account if flag F01 is set.
 

Data Register:  R00 = T

Flag:    F01   if flag F01 is set, "ST" calculates the mean sidereal time MST & the apparent sidereal time AST
                      if flag F01 is clear, calculates the mean sidereal time MST only.

Subroutines:  "J0"  ( cf "Julian & Gregorian Calendars for the HP-41" ) , "OBL" and  "NUT" if SF 01

-If you have a Time module, lines 05 to 08 may be replaced by   1.012  DDAYS  24  *  -
-Line 11 stores the number of millenia since 2000/01/01  0h   into R00
-Synthetic register M may of course be replaced by any unused data register.
 
 

01  LBL "ST"
02  HR
03  STO Z
04  X<>Y
05  XEQ "J0"      
06  24
07  *
08  +
09  8766 E3
10  /
11  STO 00  
12  .259
13  %
14  24000.51337
15  +
16  *
17  6.66452
18  +
19  +
20  STO M   
21  XEQ "OBL" 
22  R^
23  LASTX
24  COS
25  *
26  15
27  /
28  0
29  X<> M        
30  24
31  MOD
32  ST+ Y
33  HMS
34  X<>Y         
35  HMS
36  END
 

 
   ( 81 bytes / SIZE 001 )
 
 

       STACK        INPUTS  SF01-OUTPUTS   CF01-OUTPUTS
           Z              /     true obliquity     mean obliquity
           Y   YYYY.MNDD   MST = hh.mnss'   MST = hh.mnss'
           X     hh.mnss (UT)   AST =  hh.mnss   MST = hh.mnss'

Example:      Find the mean & apparent sidereal times at Greenwich on 2006/12/28 at 16h41m37s ( UT )

        SF 01
   2006.1228  ENTER^
       16.4137  XEQ "ST"  >>>>   AST =  23h09m39s86   RDN  MST =  23h09m39s67   RDN   e = 23°26'26"66

-With CF 01  both X- and Y-registers = MST = 23h09m39s67  and Z = em = 23°26'18"13

-MST is calculated more accurately than AST.
-In order to know the sidereal time in another place, simply add the longitude ( measured positively eastwards from the meridian of Greenwich )
 For instance, the US Naval Observatory at Washington ( D.C. ):   Longitude = -77°03'56" = -77.06555° = -5.137704h = -5h08m15s73
-So, subtract  5h08m15s73 to the sidereal times above.
 

References:

[1]  Jean Meeus - "Astronomical Algorithms" - Willmann-Bell -  ISBN 0-943396-61-1
[2]  "Introduction aux Ephemerides Astronomiques" - EDP Sciences - ISBN 2-86883-298-9  ( in French )
[3]  United States Naval Observatory, Circular n° 179  http://aa.usno.navy.mil/publications/docs/circular_179.html