The Museum of HP Calculators

# Rising-Transit-Setting for the HP-41

This program is Copyright © 2005 by Jean-Marc Baillard and is used here by permission.

This program is supplied without representation or warranty of any kind. Jean-Marc Baillard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

## Overview

-The following program calculates the times of rising, transit and setting of a celestial body on a day D
and the geometric altitude at the moment of transit.
-The coordinates ( right ascension and declination ) must be obtained independently on days D-1, D , D+1 ( 0h UT )
but first, we need a routine to compute the mean sidereal time at Greenwich:

Mean Sidereal Time at Greenwich

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

01  LBL "MST"
02  HR
03  STO Z            line 03 may be deleted if you replace line 05 by XEQ "J1" or XEQ "J2"
04  X<>Y
05  XEQ "J0"        if you have a Time module, lines 05 to 08 may be replaced by   1.012  DDAYS  24  *  -
06  24
07  *
08  +
09  8766 E3
10  /
11  STO 00          this line stores the number of millenium since 2000/01/01  0h , but is not really necessary here.
12  .26
13  %
14  24000.5134
15  +
16  *
17  6.6645
18  +
19  +
20  24
21  MOD
22  HMS
23  END

( 58 bytes / SIZE 001 )

 STACK INPUTS OUTPUTS Y YYYY.MNDD / X hh.mnss (UT) HH.MNSS (MST)

Example:   Find the mean sidereal time at Greenwich on 2005/01/27 at 14h29m16s

2005.0127  ENTER^
14.2916  XEQ "MST"  >>>>   MST =  22h57m08s

Rising-Transit-Setting

Data Registers:  R00 and R07 thru R15 are used for temporary data storage.         ( Registers R01 to R06 are to be initialized before executing "RTS" )

( on day D-1 )        ( on day D )        ( on day D+1 )         ( at 0h )

•  R01 = RA(-1)   •  R03 = RA(0)   •  R05 = RA(+1)          RA = right ascension ( hh.mnss )
•  R02 = decl(-1)  •  R04 = decl(0)  •  R06 = decl(+1)         decl = declination  ( ° .  '  " )

Flags:   Set Flag   F00  for the Sun
Set Flag   F02  for the Moon    ( Clear these 2 flags for the other celestial bodies )

Subroutine:  "MST"

01  LBL "RTS"
02  DEG
03  STO 12
04  RDN
05  STO 11
06  CLX
07  XEQ "MST"
08  RCL 03
09  X<>Y
10  HMS-
11  HR
12  RCL 11
13  HR
14  15
15  /
16  -
17  24
18  MOD
19  STO 13
20  .34
21  FS? 00
22  .5
23  FS? 02
24  -.073
25  HR
26  SIN
27  STO 00
28  2
29  FS? 02
30  3
31  STO 15
32  24.0657
33  STO 14
34  CLX
35  STO 08
36  STO 09
37  STO 10
38  LBL 01
39  RCL 08
40  STO 07
41  XEQ 02
42  STO 08
43  XEQ 03
44  ST- 08
45  RCL 10
46  STO 07
47  XEQ 02
48  STO 10
49  XEQ 03
50  ST+ 10
51  RCL 09
52  STO 07
53  XEQ 02
54  STO 09
55  DSE 15
56  GTO 01
57  XEQ 03
58  24
59  ST* 08
60  ST* 09
61  ST* 10
62  R^
63  ASIN
64  HMS
65  RCL 10
66  HMS
67  RCL 09
68  HMS
69  RCL 08
70  HMS
71  RTN
72  LBL 02
73  RCL 01
74  HR
75  RCL 05
76  HR
77  RCL 03
78  HR
79  XEQ 04
80  RCL 13
81  +
82  RCL 14
83  /
84  RTN
85  LBL 03
86  RCL 02
87  HR
88  RCL 06
89  HR
90  RCL 04
91  HR
92  XEQ 04
93  RCL 04
94  HR
95  +
96  ENTER^
97  SIN
98  RCL 12
99  HR
100  SIN
101  *
102  STO Z
103  RCL 00
104  +
105  CHS
106  X<>Y
107  COS
108  RCL 12
109  HR
110  COS
111  *
112  ST+ T
113  /
114  SF 25
115  ACOS
116  RCL 14
117  /
118  15
119  /
120  FC?C 25
121  CLX
122  RTN
123  LBL 04
124  ST- Z
125  -
126  STO Z
127  X<>Y
128  ST- Z
129  +
130  RCL 07
131  *
132  +
133  RCL 07
134  *
135  2
136  /
137  END

( 199 bytes / SIZE 016 )

 STACK INPUTS OUTPUTS T / h = altitude* ( ° .  '  " ) Z Date ( YYYY.MNDD ) setting(UT) (hh.mnss) Y Longitude ( ° .  '  " ) transit(UT)  (hh.mnss) X latitude     ( ° .  '  " ) rising (UT)  (hh.mnss)

* where  h = the geometric altitude of the center of the body at the time of transit.

Example1:   Find the times of rising, transit and setting of the Sun at Seattle ( 122°19'51"W ;  47°36'23"N )  on 2005/01/27

-First, we find the right ascension and declination of the Sun on 2005/01/26 , 2005/01/27 , 2005/01/28 at 0h UT  ( cf "Astronomical Ephemeris for the HP-41" )
and we store these values into R01 thru R06:

20.3404  STO 01      20.3813  STO 03     20.4221  STO 05
-18.4416  STO 02     -18.2900  STO 04    -18.1324  STO 06

then,            SF 00  CF 02

2005.0127  ENTER^
-122.1951  ENTER^
47.3623  XEQ "RTS"   >>>>    Rising =  15h41m39s (UT)     ( execution time = 34 seconds )
RDN    Transit = 20h22m12s (UT)
RDN    Setting = 25h03m17s (UT)    ( i-e   1h03m17s  on  2005/01/28 )
RDN  altitude of the Sun at the time of transit =  24°07'48"

Note:     For the Moon,   CF 00   SF 02   ,   execution time = 47 seconds

Example2:   Same questions for Sirius.  The right ascension and declination are  6h45m23s  and  -16°43'18"  for this date.

6.4523   STO 01   STO 03   STO 05       the coordinates may be regarded as constant.
-16.4318   STO 02   STO 04   STO 06

then,             CF 00   CF 02

2005.0127   ENTER^      ( or  2005.0127   RCL 11   RCL 12   XEQ "RTS" )
-122.1951  ENTER^
47.3623  XEQ "RTS"   >>>>    Rising =  1h42m05s (UT)     ( execution time = 34 seconds )
RDN    Transit =  6h28m09s (UT)
RDN    Setting = 11h14m14s (UT)
RDN  altitude of Sirius at the time of transit =  25°40'19"

Note:   If the body is circumpolar, there will be no rising and setting: the star will remain above ( or below ) the horizon.
In this case however, "RTS" yields ( approximately ) the same values in X, Y, Z registers

-For example, with the pole star ( RA = 2h37m39s ; Decl = 89°17'10" )   "RTS" gives   X = Y = Z = 2h21m06s
but since  T = altitude of the star at the instant of transit = 48°19'13"
we can deduce that X and Z are meaningless results.

Remarks:

-The longitudes are measured positively Eastward from the meridian of Greenwich ( otherwise, replace line 16 by + instead of - ).
-The time of transit is ( almost ) always between  0h and 24h but the time of rising may be negative ( day D-1 ) ( press 24  HMS+ )
and the time of setting greator than 24 ( day D+1 ).
-3 iterations are performed for the Moon, 2 in the other cases ( lines 28 to 31 ).One would be enough if the coordinates are constant.
-A quadratic interpolation formula is used.
-Line 25, register X contains a small angle -h0  that takes the refraction into account ( and the parallax for the Moon ).
If you are situated at an altitude A ( in meters ) above sea level and/or if the horizon is limited by mountains, add to  -h0 the correction:
arccos (a/(a+A)) - arctan H/d     where    a = 6,378,137 m = the radius of the Earth
H = height of the mountain
d = distance mountain-observer.                   ( Add this term after line 25 )

-In fact, the refraction also depends on the air temperature and pressure ( cf "Astronomical Refraction for the HP-41" )
and rising and setting times are accurate to 1 minute only.

Reference:      Jean Meeus , "Astronomical Algorithms" - Willmann-Bell  -  ISBN 0-943396-35-2