hp41programs

LocalTime Local Solar Time for the HP-41
 

Overview
 

-This program calculates the local solar time defined by:  LST  = 12 h. + the hour angle of the Sun.
-12h are added because it's more convenient to regard the solar day as commencing at midnight rather than at noon.
-The equation of time ( i-e the difference between apparent and mean time ) is obtained by the following formula:

     E = y.sin 2L - 2e.sin M + 4ey.sin M cos 2L - (y2/2).sin 4L - (5e2/4).sin 2M       ( in radians )

where

     y = tan2(obl/2)    obl = obliquity of the ecliptic
     L = Sun's mean longitude
     e = eccentricity of the Earth's orbit
    M = Sun's mean anomaly

-A second routine has been added to get a similar accuracy over a longer time-span.
 

Program Listing1
 

Data Registers:  R00 thru R05
Flag: /
Subroutine:  "J0" or "J1" or "J2"  ( cf "Julian & Gregorian Calendars for the HP-41" )
                        none if you have a Time Module

-If you have a Time module,  lines 09-10 may be replaced by   1.012   RCL Z   DDAYS
-If you want, add   24  MOD   after line 61
 
 

01  LBL "LST"
02  DEG
03  STO 00     
04  RDN
05  HR
06  STO 01
07  24
08  /
09  X<>Y 
10  XEQ "J0"
11  +
12  STO 02
13  .9856
14  *
15  2.964
16  -
17  X<> 02    
18  1.971295 
19  *
20  199.947
21  +
22  540
23  1/X
24  SQRT
25  P-R
26  STO 03
27  RCL 02
28  SIN
29  STO 04     
30  4
31  *
32  *
33  3582
34  STO 05
35  SQRT
36  ST/ 04
37  /
38  +
39  X<>Y
40  RCL 03
41  *
42  -
43  RCL 04     
44  ST+ X
45  -
46  RCL 02
47  ST+ X
48  SIN
49  .8
50  /
51  RCL 05
52  /
53  -
54  R-D
55  RCL 00     
56  HR
57  +
58  15
59  /
60  RCL 01
61  + 
62  HMS
63  END

 
  ( 106 bytes / SIZE 006 )
 
 

             STACK           INPUTS          OUTPUTS
                  Z       YYYY.MNDD                 /
                  Y       HH.MNSS (UT)                 /
                  X      Longitude ( ° . '  " )       LST = HH.MNSS

Examples:   Calculate the solar time on  2004/12/31  12h25mn41s (UT)  in the U.S. Naval Observatory at Washington ( D.C.)  ( Longitude = 77°03'56"W )

      2004.1231  ENTER^
          12.2541  ENTER^
        -77.0356  XEQ "LST"   >>>>   LST = 7h14mn13s4

  Likewise,

      2100.1231  ENTER^
          12.2541  ENTER^
        -77.0356  XEQ "LST"   >>>>   LST = 7h14mn35s1
 

Notes:

-The longitudes are measured positively eastwards from the meridian of Greenwich.
-The accuracy is of the order of  1 second between 1900 and 2100.
 

Program Listing2
 

-As usual, we must take into account more secular terms to get the same accuracy a few millenia around J2000
 

Data Registers:  R00 thru R05
Flag: /
Subroutine:  "J0" or "J1" or "J2"  ( cf "Julian & Gregorian Calendars for the HP-41" )

-If you want, add   24  MOD   after line 83
 
 

01  LBL "LST"
02  DEG
03  STO 00
04  RDN
05  HR
06  STO 01
07  24
08  /
09  X<>Y
10  XEQ "J0"
11  +
12  365250
13  /
14  359990.503
15  RCL Y
16  65
17  /
18  -
19  *
20  2.964
21  -
22  STO 02       
23  RDN
24  42
25  +
26  *
27  CHS
28  1671
29  +
30   E5
31  /
32  STO 03
33  CLX
34  15
35  /
36  720015.397
37  +
38  *
39  199.947
40  +
41  X<>Y
42  .065
43  *
44  11.7196
45  -
46  TAN
47  X^2
48  P-R
49  STO 04
50  RCL 02
51  SIN
52  STO 05
53  4
54  *
55  *
56  RCL 03       
57  ST* 05
58  *
59  +
60  X<>Y
61  RCL 04 
62  *
63  -
64  RCL 05
65  ST+ X
66  -
67  RCL 02
68  ST+ X
69  SIN
70  .8
71  /
72  RCL 03
73  X^2
74  *
75  -
76  R-D
77  RCL 00       
78  HR
79  +
80  15
81  /
82  RCL 01
83  + 
84  HMS
85  END

 
   ( 151 bytes / SIZE 006 )
 
 

             STACK           INPUTS          OUTPUTS
                  Z       YYYY.MNDD                 /
                  Y       HH.MNSS (UT)                 /
                  X      Longitude ( ° . '  " )       LST = HH.MNSS

Example:

      4000.0716  ENTER^
          16.2441  ENTER^
        -77.0356  XEQ "LST"   >>>>   LST = 11h05mn54s6

References:

[1]  Jean Meeus , "Astronomical Algorithms" - Willmann-Bell  -  ISBN 0-943396-61-1
[2]  Robin M. Green - "Spherical Astronomy" - Cambridge University Press - ISBN  0-521-31779-7