hp41programs

Moon's Nodes

Passages of the Moon through the Nodes for the HP-41


Overview
 

-This program takes an approximate date and returns the time when the Moon passes at the ascending or the descending node of its orbit ( Moon's latitude = 0 ).
-The accuracy is about 5 minutes over the interval [1900,2100]
 

Data Registers:  R00 thru R04: temp      ( R04 is an even integer for the ascending node or an odd integer for the descending node )
Flags: /
Subroutines:  "J0" & "DT"  ( cf "Julian & Gregorian Calendars for the HP-41" )  or "J1" & "D1" or "J2" & "D2"

-Line 07 may be replaced by the M-Code routine  FLOOR
-Lines 120 to 128 may be replaced by   FLOOR   LASTX   FRC2   24   *
 
 

 01  LBL "MNODE"
  02  DEG
  03  XEQ "J0"
  04  13.6061104
  05  STO 03
  06  /
  07  INT 
  08  STO 04
  09  331.73736
  10  *
  11  7.28
  12  +
  13  STO 02
  14  ST+ X
  15  RCL 04
  16  177.76374
  17  *
  18  38.38
  19  +
  20  STO 00
  21  -
  22  SIN
  23  RCL 00
  24  SIN
  25  472
  26  *
  27  -
  28  RCL 00
  29  RCL 02
  30  -
  31  SIN
  32  87
  33  *
  34  +
  35  RCL 00          
  36  RCL 02
  37  +
  38  SIN
  39  RCL 04
  40  13.4102
  41  *
  42  17.4
  43  +
  44  STO 01
  45  RCL 02
  46  -
  47  SIN
  48  +
  49  8
  50  *
  51  +
  52  RCL 00
  53  RCL 01
  54  +
  55  RCL 02
  56  -
  57  SIN
  58  4
  59  *
  60  +
  61  RCL 00
  62  ST+ X
  63  SIN
  64  LASTX
  65  RCL 02          
  66  -
  67  SIN
  68  +
  69  RCL 01
  70  RCL 02
  71  +
  72  SIN
  73  +
  74  RCL 01
  75  RCL 00
  76  -
  77  SIN
  78  +
  79  RCL 01
  80  SIN
  81  +
  82  RCL 02
  83  ST+ X
  84  SIN
  85  +
  86  RCL 02
  87  SIN
  88  55
  89  *
  90  -
  91  3
  92  *
  93  +
  94  RCL 00          
  95  RCL 01
  96  +
  97  SIN
  98  RCL 02
  99  2
100  /
101  SIN
102  -
103  RCL 04
104  .72
105  *
106  56
107  +
108  SIN
109  +
110  ST+ X
111  +
112  20662
113  +
114   E3
115  /
116  RCL 03
117  RCL 04
118  *
119  +
120  INT
121  LASTX          
122  FRC
123  X<0?
124  DSE Y
125  FRC
126  24
127  ST* Y
128  MOD
129  HMS
130  X<>Y
131  XEQ "DT"
132  RCL 04
133  2
134  MOD
135  X>0?
136  CHS
137  X=0?
138  SIGN
139  END

 
   ( 215 bytes / SIZE 005 )
 
 

      STACK        INPUTS      OUTPUTS
           Z             /      HH.MNSS
           Y             /   YYYY.MNDD
           X      yyyy.mndd         +/-1

   X-output = +1  for a passage at the ascending node
   X-output = -1  for a passage at the descending node

Examples:

   2008.0825   XEQ "MNODE"  >>>>         1                          ---Execution time = 20s---
                                                   RDN    2008.0912
                                                   RDN        18.2530

-The Moon passes through the ascending node on 2008/09/12 at 18h25m TT

   2008.0915          R/S               >>>>       -1
                                                   RDN   2008.0925
                                                   RDN       16.2137

-The Moon passes through the descending node on 2008/09/25 at 16h22m TT
 

Reference:

[1]  Jean Meeus - "Astronomical Algorithms" - Willmann-Bell  -  ISBN 0-943396-61-1