ÿþ/ * 
                         J a v a S c r i p t   f u n c t i o n s   f o r   p o s i t i o n a l   a s t r o n o m y 
 
                                     b y   J o h n   W a l k e r     - -     S e p t e m b e r ,   M I M 
                                               h t t p : / / w w w . f o u r m i l a b . c h / 
 
                                 T h i s   p r o g r a m   i s   i n   t h e   p u b l i c   d o m a i n . 
 * / 
 
 / /     F r e q u e n t l y - u s e d   c o n s t a n t s 
 
 v a r 
         J 2 0 0 0                           =   2 4 5 1 5 4 5 . 0 ,                             / /   J u l i a n   d a y   o f   J 2 0 0 0   e p o c h 
         J u l i a n C e n t u r y           =   3 6 5 2 5 . 0 ,                                 / /   D a y s   i n   J u l i a n   c e n t u r y 
         J u l i a n M i l l e n n i u m     =   ( J u l i a n C e n t u r y   *   1 0 ) ,       / /   D a y s   i n   J u l i a n   m i l l e n n i u m 
         A s t r o n o m i c a l U n i t     =   1 4 9 5 9 7 8 7 0 . 0 ,                         / /   A s t r o n o m i c a l   u n i t   i n   k i l o m e t r e s 
         T r o p i c a l Y e a r             =   3 6 5 . 2 4 2 1 9 8 7 8 ;                       / /   M e a n   s o l a r   t r o p i c a l   y e a r 
 
 / *     A S T O R     - -     A r c - s e c o n d s   t o   r a d i a n s .     * / 
 
 f u n c t i o n   a s t o r ( a ) 
 { 
         r e t u r n   a   *   ( M a t h . P I   /   ( 1 8 0 . 0   *   3 6 0 0 . 0 ) ) ; 
 } 
 
 / *     D T R     - -     D e g r e e s   t o   r a d i a n s .     * / 
 
 f u n c t i o n   d t r ( d ) 
 { 
         r e t u r n   ( d   *   M a t h . P I )   /   1 8 0 . 0 ; 
 } 
 
 / *     R T D     - -     R a d i a n s   t o   d e g r e e s .     * / 
 
 f u n c t i o n   r t d ( r ) 
 { 
         r e t u r n   ( r   *   1 8 0 . 0 )   /   M a t h . P I ; 
 } 
 
 / *     F I X A N G L E     - -     R a n g e   r e d u c e   a n g l e   i n   d e g r e e s .     * / 
 
 f u n c t i o n   f i x a n g l e ( a ) 
 { 
                 r e t u r n   a   -   3 6 0 . 0   *   ( M a t h . f l o o r ( a   /   3 6 0 . 0 ) ) ; 
 } 
 
 / *     F I X A N G R     - -     R a n g e   r e d u c e   a n g l e   i n   r a d i a n s .     * / 
 
 f u n c t i o n   f i x a n g r ( a ) 
 { 
                 r e t u r n   a   -   ( 2   *   M a t h . P I )   *   ( M a t h . f l o o r ( a   /   ( 2   *   M a t h . P I ) ) ) ; 
 } 
 
 / /     D S I N     - -     S i n e   o f   a n   a n g l e   i n   d e g r e e s 
 
 f u n c t i o n   d s i n ( d ) 
 { 
         r e t u r n   M a t h . s i n ( d t r ( d ) ) ; 
 } 
 
 / /     D C O S     - -     C o s i n e   o f   a n   a n g l e   i n   d e g r e e s 
 
 f u n c t i o n   d c o s ( d ) 
 { 
         r e t u r n   M a t h . c o s ( d t r ( d ) ) ; 
 } 
 
 / *     M O D     - -     M o d u l u s   f u n c t i o n   w h i c h   w o r k s   f o r   n o n - i n t e g e r s .     * / 
 
 f u n c t i o n   m o d ( a ,   b ) 
 { 
         r e t u r n   a   -   ( b   *   M a t h . f l o o r ( a   /   b ) ) ; 
 } 
 
 / /     A M O D     - -     M o d u l u s   f u n c t i o n   w h i c h   r e t u r n s   n u m e r a t o r   i f   m o d u l u s   i s   z e r o 
 
 f u n c t i o n   a m o d ( a ,   b ) 
 { 
         r e t u r n   m o d ( a   -   1 ,   b )   +   1 ; 
 } 
 
 / *     J H M S     - -     C o n v e r t   J u l i a n   t i m e   t o   h o u r ,   m i n u t e s ,   a n d   s e c o n d s , 
                             r e t u r n e d   a s   a   t h r e e - e l e m e n t   a r r a y .     * / 
 
 f u n c t i o n   j h m s ( j )   { 
         v a r   i j ; 
 
         j   + =   0 . 5 ;                                   / *   A s t r o n o m i c a l   t o   c i v i l   * / 
         i j   =   ( j   -   M a t h . f l o o r ( j ) )   *   8 6 4 0 0 . 0 ; 
         r e t u r n   n e w   A r r a y ( 
                                           M a t h . f l o o r ( i j   /   3 6 0 0 ) , 
                                           M a t h . f l o o r ( ( i j   /   6 0 )   %   6 0 ) , 
                                           M a t h . f l o o r ( i j   %   6 0 ) ) ; 
 } 
 
 / /     J W D A Y     - -     C a l c u l a t e   d a y   o f   w e e k   f r o m   J u l i a n   d a y 
 
 v a r   W e e k d a y s   =   n e w   A r r a y (   " S u n d a y " ,   " M o n d a y " ,   " T u e s d a y " ,   " W e d n e s d a y " , 
                                                     " T h u r s d a y " ,   " F r i d a y " ,   " S a t u r d a y "   ) ; 
 
 f u n c t i o n   j w d a y ( j ) 
 { 
         r e t u r n   m o d ( M a t h . f l o o r ( ( j   +   1 . 5 ) ) ,   7 ) ; 
 } 
 
 / *     O B L I Q E Q     - -     C a l c u l a t e   t h e   o b l i q u i t y   o f   t h e   e c l i p t i c   f o r   a   g i v e n 
                                   J u l i a n   d a t e .     T h i s   u s e s   L a s k a r ' s   t e n t h - d e g r e e 
                                   p o l y n o m i a l   f i t   ( J .   L a s k a r ,   A s t r o n o m y   a n d 
                                   A s t r o p h y s i c s ,   V o l .   1 5 7 ,   p a g e   6 8   [ 1 9 8 6 ] )   w h i c h   i s 
                                   a c c u r a t e   t o   w i t h i n   0 . 0 1   a r c   s e c o n d   b e t w e e n   A D   1 0 0 0 
                                   a n d   A D   3 0 0 0 ,   a n d   w i t h i n   a   f e w   s e c o n d s   o f   a r c   f o r 
                                   + / - 1 0 0 0 0   y e a r s   a r o u n d   A D   2 0 0 0 .     I f   w e ' r e   o u t s i d e   t h e 
                                   r a n g e   i n   w h i c h   t h i s   f i t   i s   v a l i d   ( d e e p   t i m e )   w e 
                                   s i m p l y   r e t u r n   t h e   J 2 0 0 0   v a l u e   o f   t h e   o b l i q u i t y ,   w h i c h 
                                   h a p p e n s   t o   b e   a l m o s t   p r e c i s e l y   t h e   m e a n .     * / 
 
 v a r   o t e r m s   =   n e w   A r r a y   ( 
                 - 4 6 8 0 . 9 3 , 
                       - 1 . 5 5 , 
                   1 9 9 9 . 2 5 , 
                     - 5 1 . 3 8 , 
                   - 2 4 9 . 6 7 , 
                     - 3 9 . 0 5 , 
                         7 . 1 2 , 
                       2 7 . 8 7 , 
                         5 . 7 9 , 
                         2 . 4 5 
 ) ; 
 
 f u n c t i o n   o b l i q e q ( j d ) 
 { 
         v a r   e p s ,   u ,   v ,   i ; 
 
         v   =   u   =   ( j d   -   J 2 0 0 0 )   /   ( J u l i a n C e n t u r y   *   1 0 0 ) ; 
 
         e p s   =   2 3   +   ( 2 6   /   6 0 . 0 )   +   ( 2 1 . 4 4 8   /   3 6 0 0 . 0 ) ; 
 
         i f   ( M a t h . a b s ( u )   <   1 . 0 )   { 
                 f o r   ( i   =   0 ;   i   <   1 0 ;   i + + )   { 
                         e p s   + =   ( o t e r m s [ i ]   /   3 6 0 0 . 0 )   *   v ; 
                         v   * =   u ; 
                 } 
         } 
         r e t u r n   e p s ; 
 } 
 
 / *   P e r i o d i c   t e r m s   f o r   n u t a t i o n   i n   l o n g i u d e   ( d e l t a   \ P s i )   a n d 
       o b l i q u i t y   ( d e l t a   \ E p s i l o n )   a s   g i v e n   i n   t a b l e   2 1 . A   o f 
       M e e u s ,   " A s t r o n o m i c a l   A l g o r i t h m s " ,   f i r s t   e d i t i o n .   * / 
 
 v a r   n u t A r g M u l t   =   n e w   A r r a y ( 
           0 ,     0 ,     0 ,     0 ,     1 , 
         - 2 ,     0 ,     0 ,     2 ,     2 , 
           0 ,     0 ,     0 ,     2 ,     2 , 
           0 ,     0 ,     0 ,     0 ,     2 , 
           0 ,     1 ,     0 ,     0 ,     0 , 
           0 ,     0 ,     1 ,     0 ,     0 , 
         - 2 ,     1 ,     0 ,     2 ,     2 , 
           0 ,     0 ,     0 ,     2 ,     1 , 
           0 ,     0 ,     1 ,     2 ,     2 , 
         - 2 ,   - 1 ,     0 ,     2 ,     2 , 
         - 2 ,     0 ,     1 ,     0 ,     0 , 
         - 2 ,     0 ,     0 ,     2 ,     1 , 
           0 ,     0 ,   - 1 ,     2 ,     2 , 
           2 ,     0 ,     0 ,     0 ,     0 , 
           0 ,     0 ,     1 ,     0 ,     1 , 
           2 ,     0 ,   - 1 ,     2 ,     2 , 
           0 ,     0 ,   - 1 ,     0 ,     1 , 
           0 ,     0 ,     1 ,     2 ,     1 , 
         - 2 ,     0 ,     2 ,     0 ,     0 , 
           0 ,     0 ,   - 2 ,     2 ,     1 , 
           2 ,     0 ,     0 ,     2 ,     2 , 
           0 ,     0 ,     2 ,     2 ,     2 , 
           0 ,     0 ,     2 ,     0 ,     0 , 
         - 2 ,     0 ,     1 ,     2 ,     2 , 
           0 ,     0 ,     0 ,     2 ,     0 , 
         - 2 ,     0 ,     0 ,     2 ,     0 , 
           0 ,     0 ,   - 1 ,     2 ,     1 , 
           0 ,     2 ,     0 ,     0 ,     0 , 
           2 ,     0 ,   - 1 ,     0 ,     1 , 
         - 2 ,     2 ,     0 ,     2 ,     2 , 
           0 ,     1 ,     0 ,     0 ,     1 , 
         - 2 ,     0 ,     1 ,     0 ,     1 , 
           0 ,   - 1 ,     0 ,     0 ,     1 , 
           0 ,     0 ,     2 ,   - 2 ,     0 , 
           2 ,     0 ,   - 1 ,     2 ,     1 , 
           2 ,     0 ,     1 ,     2 ,     2 , 
           0 ,     1 ,     0 ,     2 ,     2 , 
         - 2 ,     1 ,     1 ,     0 ,     0 , 
           0 ,   - 1 ,     0 ,     2 ,     2 , 
           2 ,     0 ,     0 ,     2 ,     1 , 
           2 ,     0 ,     1 ,     0 ,     0 , 
         - 2 ,     0 ,     2 ,     2 ,     2 , 
         - 2 ,     0 ,     1 ,     2 ,     1 , 
           2 ,     0 ,   - 2 ,     0 ,     1 , 
           2 ,     0 ,     0 ,     0 ,     1 , 
           0 ,   - 1 ,     1 ,     0 ,     0 , 
         - 2 ,   - 1 ,     0 ,     2 ,     1 , 
         - 2 ,     0 ,     0 ,     0 ,     1 , 
           0 ,     0 ,     2 ,     2 ,     1 , 
         - 2 ,     0 ,     2 ,     0 ,     1 , 
         - 2 ,     1 ,     0 ,     2 ,     1 , 
           0 ,     0 ,     1 ,   - 2 ,     0 , 
         - 1 ,     0 ,     1 ,     0 ,     0 , 
         - 2 ,     1 ,     0 ,     0 ,     0 , 
           1 ,     0 ,     0 ,     0 ,     0 , 
           0 ,     0 ,     1 ,     2 ,     0 , 
         - 1 ,   - 1 ,     1 ,     0 ,     0 , 
           0 ,     1 ,     1 ,     0 ,     0 , 
           0 ,   - 1 ,     1 ,     2 ,     2 , 
           2 ,   - 1 ,   - 1 ,     2 ,     2 , 
           0 ,     0 ,   - 2 ,     2 ,     2 , 
           0 ,     0 ,     3 ,     2 ,     2 , 
           2 ,   - 1 ,     0 ,     2 ,     2 
 ) ; 
 
 v a r   n u t A r g C o e f f   =   n e w   A r r a y ( 
         - 1 7 1 9 9 6 ,       - 1 7 4 2 ,       9 2 0 9 5 ,             8 9 ,                     / *     0 ,     0 ,     0 ,     0 ,     1   * / 
           - 1 3 1 8 7 ,           - 1 6 ,         5 7 3 6 ,           - 3 1 ,                     / *   - 2 ,     0 ,     0 ,     2 ,     2   * / 
             - 2 2 7 4 ,             - 2 ,           9 7 7 ,             - 5 ,                     / *     0 ,     0 ,     0 ,     2 ,     2   * / 
               2 0 6 2 ,               2 ,         - 8 9 5 ,               5 ,                     / *     0 ,     0 ,     0 ,     0 ,     2   * / 
               1 4 2 6 ,           - 3 4 ,             5 4 ,             - 1 ,                     / *     0 ,     1 ,     0 ,     0 ,     0   * / 
                 7 1 2 ,               1 ,             - 7 ,               0 ,                     / *     0 ,     0 ,     1 ,     0 ,     0   * / 
               - 5 1 7 ,             1 2 ,           2 2 4 ,             - 6 ,                     / *   - 2 ,     1 ,     0 ,     2 ,     2   * / 
               - 3 8 6 ,             - 4 ,           2 0 0 ,               0 ,                     / *     0 ,     0 ,     0 ,     2 ,     1   * / 
               - 3 0 1 ,               0 ,           1 2 9 ,             - 1 ,                     / *     0 ,     0 ,     1 ,     2 ,     2   * / 
                 2 1 7 ,             - 5 ,           - 9 5 ,               3 ,                     / *   - 2 ,   - 1 ,     0 ,     2 ,     2   * / 
               - 1 5 8 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     0 ,     1 ,     0 ,     0   * / 
                 1 2 9 ,               1 ,           - 7 0 ,               0 ,                     / *   - 2 ,     0 ,     0 ,     2 ,     1   * / 
                 1 2 3 ,               0 ,           - 5 3 ,               0 ,                     / *     0 ,     0 ,   - 1 ,     2 ,     2   * / 
                   6 3 ,               0 ,               0 ,               0 ,                     / *     2 ,     0 ,     0 ,     0 ,     0   * / 
                   6 3 ,               1 ,           - 3 3 ,               0 ,                     / *     0 ,     0 ,     1 ,     0 ,     1   * / 
                 - 5 9 ,               0 ,             2 6 ,               0 ,                     / *     2 ,     0 ,   - 1 ,     2 ,     2   * / 
                 - 5 8 ,             - 1 ,             3 2 ,               0 ,                     / *     0 ,     0 ,   - 1 ,     0 ,     1   * / 
                 - 5 1 ,               0 ,             2 7 ,               0 ,                     / *     0 ,     0 ,     1 ,     2 ,     1   * / 
                   4 8 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     0 ,     2 ,     0 ,     0   * / 
                   4 6 ,               0 ,           - 2 4 ,               0 ,                     / *     0 ,     0 ,   - 2 ,     2 ,     1   * / 
                 - 3 8 ,               0 ,             1 6 ,               0 ,                     / *     2 ,     0 ,     0 ,     2 ,     2   * / 
                 - 3 1 ,               0 ,             1 3 ,               0 ,                     / *     0 ,     0 ,     2 ,     2 ,     2   * / 
                   2 9 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     2 ,     0 ,     0   * / 
                   2 9 ,               0 ,           - 1 2 ,               0 ,                     / *   - 2 ,     0 ,     1 ,     2 ,     2   * / 
                   2 6 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     0 ,     2 ,     0   * / 
                 - 2 2 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     0 ,     0 ,     2 ,     0   * / 
                   2 1 ,               0 ,           - 1 0 ,               0 ,                     / *     0 ,     0 ,   - 1 ,     2 ,     1   * / 
                   1 7 ,             - 1 ,               0 ,               0 ,                     / *     0 ,     2 ,     0 ,     0 ,     0   * / 
                   1 6 ,               0 ,             - 8 ,               0 ,                     / *     2 ,     0 ,   - 1 ,     0 ,     1   * / 
                 - 1 6 ,               1 ,               7 ,               0 ,                     / *   - 2 ,     2 ,     0 ,     2 ,     2   * / 
                 - 1 5 ,               0 ,               9 ,               0 ,                     / *     0 ,     1 ,     0 ,     0 ,     1   * / 
                 - 1 3 ,               0 ,               7 ,               0 ,                     / *   - 2 ,     0 ,     1 ,     0 ,     1   * / 
                 - 1 2 ,               0 ,               6 ,               0 ,                     / *     0 ,   - 1 ,     0 ,     0 ,     1   * / 
                   1 1 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     2 ,   - 2 ,     0   * / 
                 - 1 0 ,               0 ,               5 ,               0 ,                     / *     2 ,     0 ,   - 1 ,     2 ,     1   * / 
                   - 8 ,               0 ,               3 ,               0 ,                     / *     2 ,     0 ,     1 ,     2 ,     2   * / 
                     7 ,               0 ,             - 3 ,               0 ,                     / *     0 ,     1 ,     0 ,     2 ,     2   * / 
                   - 7 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     1 ,     1 ,     0 ,     0   * / 
                   - 7 ,               0 ,               3 ,               0 ,                     / *     0 ,   - 1 ,     0 ,     2 ,     2   * / 
                   - 7 ,               0 ,               3 ,               0 ,                     / *     2 ,     0 ,     0 ,     2 ,     1   * / 
                     6 ,               0 ,               0 ,               0 ,                     / *     2 ,     0 ,     1 ,     0 ,     0   * / 
                     6 ,               0 ,             - 3 ,               0 ,                     / *   - 2 ,     0 ,     2 ,     2 ,     2   * / 
                     6 ,               0 ,             - 3 ,               0 ,                     / *   - 2 ,     0 ,     1 ,     2 ,     1   * / 
                   - 6 ,               0 ,               3 ,               0 ,                     / *     2 ,     0 ,   - 2 ,     0 ,     1   * / 
                   - 6 ,               0 ,               3 ,               0 ,                     / *     2 ,     0 ,     0 ,     0 ,     1   * / 
                     5 ,               0 ,               0 ,               0 ,                     / *     0 ,   - 1 ,     1 ,     0 ,     0   * / 
                   - 5 ,               0 ,               3 ,               0 ,                     / *   - 2 ,   - 1 ,     0 ,     2 ,     1   * / 
                   - 5 ,               0 ,               3 ,               0 ,                     / *   - 2 ,     0 ,     0 ,     0 ,     1   * / 
                   - 5 ,               0 ,               3 ,               0 ,                     / *     0 ,     0 ,     2 ,     2 ,     1   * / 
                     4 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     0 ,     2 ,     0 ,     1   * / 
                     4 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     1 ,     0 ,     2 ,     1   * / 
                     4 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     1 ,   - 2 ,     0   * / 
                   - 4 ,               0 ,               0 ,               0 ,                     / *   - 1 ,     0 ,     1 ,     0 ,     0   * / 
                   - 4 ,               0 ,               0 ,               0 ,                     / *   - 2 ,     1 ,     0 ,     0 ,     0   * / 
                   - 4 ,               0 ,               0 ,               0 ,                     / *     1 ,     0 ,     0 ,     0 ,     0   * / 
                     3 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     1 ,     2 ,     0   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *   - 1 ,   - 1 ,     1 ,     0 ,     0   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *     0 ,     1 ,     1 ,     0 ,     0   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *     0 ,   - 1 ,     1 ,     2 ,     2   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *     2 ,   - 1 ,   - 1 ,     2 ,     2   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,   - 2 ,     2 ,     2   * / 
                   - 3 ,               0 ,               0 ,               0 ,                     / *     0 ,     0 ,     3 ,     2 ,     2   * / 
                   - 3 ,               0 ,               0 ,               0                       / *     2 ,   - 1 ,     0 ,     2 ,     2   * / 
 ) ; 
 
 / *     N U T A T I O N     - -     C a l c u l a t e   t h e   n u t a t i o n   i n   l o n g i t u d e ,   d e l t a P s i ,   a n d 
                                     o b l i q u i t y ,   d e l t a E p s i l o n   f o r   a   g i v e n   J u l i a n   d a t e 
                                     j d .     R e s u l t s   a r e   r e t u r n e d   a s   a   t w o   e l e m e n t   A r r a y 
                                     g i v i n g   ( d e l t a P s i ,   d e l t a E p s i l o n )   i n   d e g r e e s .     * / 
 
 f u n c t i o n   n u t a t i o n ( j d ) 
 { 
         v a r   d e l t a P s i ,   d e l t a E p s i l o n , 
                 i ,   j , 
                 t   =   ( j d   -   2 4 5 1 5 4 5 . 0 )   /   3 6 5 2 5 . 0 ,   t 2 ,   t 3 ,   t o 1 0 , 
                 t a   =   n e w   A r r a y , 
                 d p   =   0 ,   d e   =   0 ,   a n g ; 
 
         t 3   =   t   *   ( t 2   =   t   *   t ) ; 
 
         / *   C a l c u l a t e   a n g l e s .     T h e   c o r r e s p o n d e n c e   b e t w e e n   t h e   e l e m e n t s 
               o f   o u r   a r r a y   a n d   t h e   t e r m s   c i t e d   i n   M e e u s   a r e : 
 
               t a [ 0 ]   =   D     t a [ 0 ]   =   M     t a [ 2 ]   =   M '     t a [ 3 ]   =   F     t a [ 4 ]   =   \ O m e g a 
 
         * / 
 
         t a [ 0 ]   =   d t r ( 2 9 7 . 8 5 0 3 6 3   +   4 4 5 2 6 7 . 1 1 1 4 8   *   t   -   0 . 0 0 1 9 1 4 2   *   t 2   +   
                                 t 3   /   1 8 9 4 7 4 . 0 ) ; 
         t a [ 1 ]   =   d t r ( 3 5 7 . 5 2 7 7 2   +   3 5 9 9 9 . 0 5 0 3 4   *   t   -   0 . 0 0 0 1 6 0 3   *   t 2   - 
                                 t 3   /   3 0 0 0 0 0 . 0 ) ; 
         t a [ 2 ]   =   d t r ( 1 3 4 . 9 6 2 9 8   +   4 7 7 1 9 8 . 8 6 7 3 9 8   *   t   +   0 . 0 0 8 6 9 7 2   *   t 2   + 
                                 t 3   /   5 6 2 5 0 . 0 ) ; 
         t a [ 3 ]   =   d t r ( 9 3 . 2 7 1 9 1   +   4 8 3 2 0 2 . 0 1 7 5 3 8   *   t   -   0 . 0 0 3 6 8 2 5   *   t 2   + 
                                 t 3   /   3 2 7 2 7 0 ) ; 
         t a [ 4 ]   =   d t r ( 1 2 5 . 0 4 4 5 2   -   1 9 3 4 . 1 3 6 2 6 1   *   t   +   0 . 0 0 2 0 7 0 8   *   t 2   + 
                                 t 3   /   4 5 0 0 0 0 . 0 ) ; 
 
         / *   R a n g e   r e d u c e   t h e   a n g l e s   i n   c a s e   t h e   s i n e   a n d   c o s i n e   f u n c t i o n s 
               d o n ' t   d o   i t   a s   a c c u r a t e l y   o r   q u i c k l y .   * / 
 
         f o r   ( i   =   0 ;   i   <   5 ;   i + + )   { 
                 t a [ i ]   =   f i x a n g r ( t a [ i ] ) ; 
         } 
 
         t o 1 0   =   t   /   1 0 . 0 ; 
         f o r   ( i   =   0 ;   i   <   6 3 ;   i + + )   { 
                 a n g   =   0 ; 
                 f o r   ( j   =   0 ;   j   <   5 ;   j + + )   { 
                         i f   ( n u t A r g M u l t [ ( i   *   5 )   +   j ]   ! =   0 )   { 
                                 a n g   + =   n u t A r g M u l t [ ( i   *   5 )   +   j ]   *   t a [ j ] ; 
                         } 
                 } 
                 d p   + =   ( n u t A r g C o e f f [ ( i   *   4 )   +   0 ]   +   n u t A r g C o e f f [ ( i   *   4 )   +   1 ]   *   t o 1 0 )   *   M a t h . s i n ( a n g ) ; 
                 d e   + =   ( n u t A r g C o e f f [ ( i   *   4 )   +   2 ]   +   n u t A r g C o e f f [ ( i   *   4 )   +   3 ]   *   t o 1 0 )   *   M a t h . c o s ( a n g ) ; 
         } 
 
         / *   R e t u r n   t h e   r e s u l t ,   c o n v e r t i n g   f r o m   t e n   t h o u s a n d t h s   o f   a r c 
               s e c o n d s   t o   r a d i a n s   i n   t h e   p r o c e s s .   * / 
 
         d e l t a P s i   =   d p   /   ( 3 6 0 0 . 0   *   1 0 0 0 0 . 0 ) ; 
         d e l t a E p s i l o n   =   d e   /   ( 3 6 0 0 . 0   *   1 0 0 0 0 . 0 ) ; 
 
         r e t u r n   n e w   A r r a y ( d e l t a P s i ,   d e l t a E p s i l o n ) ; 
 } 
 
 / *     E C L I P T O E Q     - -     C o n v e r t   c e l e s t i a l   ( e c l i p t i c a l )   l o n g i t u d e   a n d 
                                       l a t i t u d e   i n t o   r i g h t   a s c e n s i o n   ( i n   d e g r e e s )   a n d 
                                       d e c l i n a t i o n .     W e   m u s t   s u p p l y   t h e   t i m e   o f   t h e 
                                       c o n v e r s i o n   i n   o r d e r   t o   c o m p e n s a t e   c o r r e c t l y   f o r   t h e 
                                       v a r y i n g   o b l i q u i t y   o f   t h e   e c l i p t i c   o v e r   t i m e . 
                                       T h e   r i g h t   a s c e n s i o n   a n d   d e c l i n a t i o n   a r e   r e t u r n e d 
                                       a s   a   t w o - e l e m e n t   A r r a y   i n   t h a t   o r d e r .     * / 
 
 f u n c t i o n   e c l i p t o e q ( j d ,   L a m b d a ,   B e t a ) 
 { 
         v a r   e p s ,   R a ,   D e c ; 
 
         / *   O b l i q u i t y   o f   t h e   e c l i p t i c .   * / 
 
         e p s   =   d t r ( o b l i q e q ( j d ) ) ; 
 l o g   + =   " O b l i q u i t y :   "   +   r t d ( e p s )   +   " \ n " ; 
 
         R a   =   r t d ( M a t h . a t a n 2 ( ( M a t h . c o s ( e p s )   *   M a t h . s i n ( d t r ( L a m b d a ) )   - 
                                                 ( M a t h . t a n ( d t r ( B e t a ) )   *   M a t h . s i n ( e p s ) ) ) , 
                                             M a t h . c o s ( d t r ( L a m b d a ) ) ) ) ; 
 l o g   + =   " R A   =   "   +   R a   +   " \ n " ; 
         R a   =   f i x a n g l e ( r t d ( M a t h . a t a n 2 ( ( M a t h . c o s ( e p s )   *   M a t h . s i n ( d t r ( L a m b d a ) )   - 
                                                 ( M a t h . t a n ( d t r ( B e t a ) )   *   M a t h . s i n ( e p s ) ) ) , 
                                             M a t h . c o s ( d t r ( L a m b d a ) ) ) ) ) ; 
         D e c   =   r t d ( M a t h . a s i n ( ( M a t h . s i n ( e p s )   *   M a t h . s i n ( d t r ( L a m b d a ) )   *   M a t h . c o s ( d t r ( B e t a ) ) )   + 
                                   ( M a t h . s i n ( d t r ( B e t a ) )   *   M a t h . c o s ( e p s ) ) ) ) ; 
 
         r e t u r n   n e w   A r r a y ( R a ,   D e c ) ; 
 } 
 
 
 / *     D E L T A T     - -     D e t e r m i n e   t h e   d i f f e r e n c e ,   i n   s e c o n d s ,   b e t w e e n 
                                 D y n a m i c a l   t i m e   a n d   U n i v e r s a l   t i m e .     * / 
 
 / *     T a b l e   o f   o b s e r v e d   D e l t a   T   v a l u e s   a t   t h e   b e g i n n i n g   o f 
         e v e n   n u m b e r e d   y e a r s   f r o m   1 6 2 0   t h r o u g h   2 0 0 2 .     * / 
 
 v a r   d e l t a T t a b   =   n e w   A r r a y ( 
         1 2 1 ,   1 1 2 ,   1 0 3 ,   9 5 ,   8 8 ,   8 2 ,   7 7 ,   7 2 ,   6 8 ,   6 3 ,   6 0 ,   5 6 ,   5 3 ,   5 1 ,   4 8 ,   4 6 , 
         4 4 ,   4 2 ,   4 0 ,   3 8 ,   3 5 ,   3 3 ,   3 1 ,   2 9 ,   2 6 ,   2 4 ,   2 2 ,   2 0 ,   1 8 ,   1 6 ,   1 4 ,   1 2 , 
         1 1 ,   1 0 ,   9 ,   8 ,   7 ,   7 ,   7 ,   7 ,   7 ,   7 ,   8 ,   8 ,   9 ,   9 ,   9 ,   9 ,   9 ,   1 0 ,   1 0 ,   1 0 , 
         1 0 ,   1 0 ,   1 0 ,   1 0 ,   1 0 ,   1 1 ,   1 1 ,   1 1 ,   1 1 ,   1 1 ,   1 2 ,   1 2 ,   1 2 ,   1 2 ,   1 3 ,   1 3 , 
         1 3 ,   1 4 ,   1 4 ,   1 4 ,   1 4 ,   1 5 ,   1 5 ,   1 5 ,   1 5 ,   1 5 ,   1 6 ,   1 6 ,   1 6 ,   1 6 ,   1 6 ,   1 6 , 
         1 6 ,   1 6 ,   1 5 ,   1 5 ,   1 4 ,   1 3 ,   1 3 . 1 ,   1 2 . 5 ,   1 2 . 2 ,   1 2 ,   1 2 ,   1 2 ,   1 2 ,   1 2 ,   1 2 , 
         1 1 . 9 ,   1 1 . 6 ,   1 1 ,   1 0 . 2 ,   9 . 2 ,   8 . 2 ,   7 . 1 ,   6 . 2 ,   5 . 6 ,   5 . 4 ,   5 . 3 ,   5 . 4 ,   5 . 6 , 
         5 . 9 ,   6 . 2 ,   6 . 5 ,   6 . 8 ,   7 . 1 ,   7 . 3 ,   7 . 5 ,   7 . 6 ,   7 . 7 ,   7 . 3 ,   6 . 2 ,   5 . 2 ,   2 . 7 , 
         1 . 4 ,   - 1 . 2 ,   - 2 . 8 ,   - 3 . 8 ,   - 4 . 8 ,   - 5 . 5 ,   - 5 . 3 ,   - 5 . 6 ,   - 5 . 7 ,   - 5 . 9 ,   - 6 , 
         - 6 . 3 ,   - 6 . 5 ,   - 6 . 2 ,   - 4 . 7 ,   - 2 . 8 ,   - 0 . 1 ,   2 . 6 ,   5 . 3 ,   7 . 7 ,   1 0 . 4 ,   1 3 . 3 ,   1 6 , 
         1 8 . 2 ,   2 0 . 2 ,   2 1 . 1 ,   2 2 . 4 ,   2 3 . 5 ,   2 3 . 8 ,   2 4 . 3 ,   2 4 ,   2 3 . 9 ,   2 3 . 9 ,   2 3 . 7 , 
         2 4 ,   2 4 . 3 ,   2 5 . 3 ,   2 6 . 2 ,   2 7 . 3 ,   2 8 . 2 ,   2 9 . 1 ,   3 0 ,   3 0 . 7 ,   3 1 . 4 ,   3 2 . 2 , 
         3 3 . 1 ,   3 4 ,   3 5 ,   3 6 . 5 ,   3 8 . 3 ,   4 0 . 2 ,   4 2 . 2 ,   4 4 . 5 ,   4 6 . 5 ,   4 8 . 5 ,   5 0 . 5 , 
         5 2 . 2 ,   5 3 . 8 ,   5 4 . 9 ,   5 5 . 8 ,   5 6 . 9 ,   5 8 . 3 ,   6 0 ,   6 1 . 6 ,   6 3 ,   6 5 ,   6 6 . 6 
                                                   ) ; 
 
 f u n c t i o n   d e l t a t ( y e a r ) 
 { 
         v a r   d t ,   f ,   i ,   t ; 
 
         i f   ( ( y e a r   > =   1 6 2 0 )   & &   ( y e a r   < =   2 0 0 0 ) )   { 
                 i   =   M a t h . f l o o r ( ( y e a r   -   1 6 2 0 )   /   2 ) ; 
                 f   =   ( ( y e a r   -   1 6 2 0 )   /   2 )   -   i ;     / *   F r a c t i o n a l   p a r t   o f   y e a r   * / 
                 d t   =   d e l t a T t a b [ i ]   +   ( ( d e l t a T t a b [ i   +   1 ]   -   d e l t a T t a b [ i ] )   *   f ) ; 
         }   e l s e   { 
                 t   =   ( y e a r   -   2 0 0 0 )   /   1 0 0 ; 
                 i f   ( y e a r   <   9 4 8 )   { 
                         d t   =   2 1 7 7   +   ( 4 9 7   *   t )   +   ( 4 4 . 1   *   t   *   t ) ; 
                 }   e l s e   { 
                         d t   =   1 0 2   +   ( 1 0 2   *   t )   +   ( 2 5 . 3   *   t   *   t ) ; 
                         i f   ( ( y e a r   >   2 0 0 0 )   & &   ( y e a r   <   2 1 0 0 ) )   { 
                                 d t   + =   0 . 3 7   *   ( y e a r   -   2 1 0 0 ) ; 
                         } 
                 } 
         } 
         r e t u r n   d t ; 
 } 
 
 / *     E Q U I N O X     - -     D e t e r m i n e   t h e   J u l i a n   E p h e m e r i s   D a y   o f   a n 
                                   e q u i n o x   o r   s o l s t i c e .     T h e   " w h i c h "   a r g u m e n t 
                                   s e l e c t s   t h e   i t e m   t o   b e   c o m p u t e d : 
 
                                         0       M a r c h   e q u i n o x 
                                         1       J u n e   s o l s t i c e 
                                         2       S e p t e m b e r   e q u i n o x 
                                         3       D e c e m b e r   s o l s t i c e 
 
 * / 
 
 / /     P e r i o d i c   t e r m s   t o   o b t a i n   t r u e   t i m e 
 
 v a r   E q u i n o x p T e r m s   =   n e w   A r r a y ( 
                                               4 8 5 ,   3 2 4 . 9 6 ,       1 9 3 4 . 1 3 6 , 
                                               2 0 3 ,   3 3 7 . 2 3 ,     3 2 9 6 4 . 4 6 7 , 
                                               1 9 9 ,   3 4 2 . 0 8 ,           2 0 . 1 8 6 , 
                                               1 8 2 ,     2 7 . 8 5 ,   4 4 5 2 6 7 . 1 1 2 , 
                                               1 5 6 ,     7 3 . 1 4 ,     4 5 0 3 6 . 8 8 6 , 
                                               1 3 6 ,   1 7 1 . 5 2 ,     2 2 5 1 8 . 4 4 3 , 
                                                 7 7 ,   2 2 2 . 5 4 ,     6 5 9 2 8 . 9 3 4 , 
                                                 7 4 ,   2 9 6 . 7 2 ,       3 0 3 4 . 9 0 6 , 
                                                 7 0 ,   2 4 3 . 5 8 ,       9 0 3 7 . 5 1 3 , 
                                                 5 8 ,   1 1 9 . 8 1 ,     3 3 7 1 8 . 1 4 7 , 
                                                 5 2 ,   2 9 7 . 1 7 ,         1 5 0 . 6 7 8 , 
                                                 5 0 ,     2 1 . 0 2 ,       2 2 8 1 . 2 2 6 , 
                                                 4 5 ,   2 4 7 . 5 4 ,     2 9 9 2 9 . 5 6 2 , 
                                                 4 4 ,   3 2 5 . 1 5 ,     3 1 5 5 5 . 9 5 6 , 
                                                 2 9 ,     6 0 . 9 3 ,       4 4 4 3 . 4 1 7 , 
                                                 1 8 ,   1 5 5 . 1 2 ,     6 7 5 5 5 . 3 2 8 , 
                                                 1 7 ,   2 8 8 . 7 9 ,       4 5 6 2 . 4 5 2 , 
                                                 1 6 ,   1 9 8 . 0 4 ,     6 2 8 9 4 . 0 2 9 , 
                                                 1 4 ,   1 9 9 . 7 6 ,     3 1 4 3 6 . 9 2 1 , 
                                                 1 2 ,     9 5 . 3 9 ,     1 4 5 7 7 . 8 4 8 , 
                                                 1 2 ,   2 8 7 . 1 1 ,     3 1 9 3 1 . 7 5 6 , 
                                                 1 2 ,   3 2 0 . 8 1 ,     3 4 7 7 7 . 2 5 9 , 
                                                   9 ,   2 2 7 . 7 3 ,       1 2 2 2 . 1 1 4 , 
                                                   8 ,     1 5 . 4 5 ,     1 6 8 5 9 . 0 7 4 
                                                           ) ; 
 
 J D E 0 t a b 1 0 0 0   =   n e w   A r r a y ( 
       n e w   A r r a y ( 1 7 2 1 1 3 9 . 2 9 1 8 9 ,   3 6 5 2 4 2 . 1 3 7 4 0 ,     0 . 0 6 1 3 4 ,     0 . 0 0 1 1 1 ,   - 0 . 0 0 0 7 1 ) , 
       n e w   A r r a y ( 1 7 2 1 2 3 3 . 2 5 4 0 1 ,   3 6 5 2 4 1 . 7 2 5 6 2 ,   - 0 . 0 5 3 2 3 ,     0 . 0 0 9 0 7 ,     0 . 0 0 0 2 5 ) , 
       n e w   A r r a y ( 1 7 2 1 3 2 5 . 7 0 4 5 5 ,   3 6 5 2 4 2 . 4 9 5 5 8 ,   - 0 . 1 1 6 7 7 ,   - 0 . 0 0 2 9 7 ,     0 . 0 0 0 7 4 ) , 
       n e w   A r r a y ( 1 7 2 1 4 1 4 . 3 9 9 8 7 ,   3 6 5 2 4 2 . 8 8 2 5 7 ,   - 0 . 0 0 7 6 9 ,   - 0 . 0 0 9 3 3 ,   - 0 . 0 0 0 0 6 ) 
                                               ) ; 
 
 J D E 0 t a b 2 0 0 0   =   n e w   A r r a y ( 
       n e w   A r r a y ( 2 4 5 1 6 2 3 . 8 0 9 8 4 ,   3 6 5 2 4 2 . 3 7 4 0 4 ,     0 . 0 5 1 6 9 ,   - 0 . 0 0 4 1 1 ,   - 0 . 0 0 0 5 7 ) , 
       n e w   A r r a y ( 2 4 5 1 7 1 6 . 5 6 7 6 7 ,   3 6 5 2 4 1 . 6 2 6 0 3 ,     0 . 0 0 3 2 5 ,     0 . 0 0 8 8 8 ,   - 0 . 0 0 0 3 0 ) , 
       n e w   A r r a y ( 2 4 5 1 8 1 0 . 2 1 7 1 5 ,   3 6 5 2 4 2 . 0 1 7 6 7 ,   - 0 . 1 1 5 7 5 ,     0 . 0 0 3 3 7 ,     0 . 0 0 0 7 8 ) , 
       n e w   A r r a y ( 2 4 5 1 9 0 0 . 0 5 9 5 2 ,   3 6 5 2 4 2 . 7 4 0 4 9 ,   - 0 . 0 6 2 2 3 ,   - 0 . 0 0 8 2 3 ,     0 . 0 0 0 3 2 ) 
                                               ) ; 
 
 f u n c t i o n   e q u i n o x ( y e a r ,   w h i c h ) 
 { 
         v a r   d e l t a L ,   i ,   j ,   J D E 0 ,   J D E ,   J D E 0 t a b ,   S ,   T ,   W ,   Y ; 
 
         / *     I n i t i a l i s e   t e r m s   f o r   m e a n   e q u i n o x   a n d   s o l s t i c e s .     W e 
                 h a v e   t w o   s e t s :   o n e   f o r   y e a r s   p r i o r   t o   1 0 0 0   a n d   a   s e c o n d 
                 f o r   s u b s e q u e n t   y e a r s .     * / 
 
         i f   ( y e a r   <   1 0 0 0 )   { 
                 J D E 0 t a b   =   J D E 0 t a b 1 0 0 0 ; 
                 Y   =   y e a r   /   1 0 0 0 ; 
         }   e l s e   { 
                 J D E 0 t a b   =   J D E 0 t a b 2 0 0 0 ; 
                 Y   =   ( y e a r   -   2 0 0 0 )   /   1 0 0 0 ; 
         } 
 
         J D E 0   =     J D E 0 t a b [ w h i c h ] [ 0 ]   + 
                       ( J D E 0 t a b [ w h i c h ] [ 1 ]   *   Y )   + 
                       ( J D E 0 t a b [ w h i c h ] [ 2 ]   *   Y   *   Y )   + 
                       ( J D E 0 t a b [ w h i c h ] [ 3 ]   *   Y   *   Y   *   Y )   + 
                       ( J D E 0 t a b [ w h i c h ] [ 4 ]   *   Y   *   Y   *   Y   *   Y ) ; 
 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " J D E 0   =   "   +   J D E 0   +   " \ n " ; 
 
         T   =   ( J D E 0   -   2 4 5 1 5 4 5 . 0 )   /   3 6 5 2 5 ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " T   =   "   +   T   +   " \ n " ; 
         W   =   ( 3 5 9 9 9 . 3 7 3   *   T )   -   2 . 4 7 ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " W   =   "   +   W   +   " \ n " ; 
         d e l t a L   =   1   +   ( 0 . 0 3 3 4   *   d c o s ( W ) )   +   ( 0 . 0 0 0 7   *   d c o s ( 2   *   W ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " d e l t a L   =   "   +   d e l t a L   +   " \ n " ; 
 
         / /     S u m   t h e   p e r i o d i c   t e r m s   f o r   t i m e   T 
 
         S   =   0 ; 
         f o r   ( i   =   j   =   0 ;   i   <   2 4 ;   i + + )   { 
                 S   + =   E q u i n o x p T e r m s [ j ]   *   d c o s ( E q u i n o x p T e r m s [ j   +   1 ]   +   ( E q u i n o x p T e r m s [ j   +   2 ]   *   T ) ) ; 
                 j   + =   3 ; 
         } 
 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " S   =   "   +   S   +   " \ n " ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " C o r r   =   "   +   ( ( S   *   0 . 0 0 0 0 1 )   /   d e l t a L )   +   " \ n " ; 
 
         J D E   =   J D E 0   +   ( ( S   *   0 . 0 0 0 0 1 )   /   d e l t a L ) ; 
 
         r e t u r n   J D E ; 
 } 
 
 / *     S U N P O S     - -     P o s i t i o n   o f   t h e   S u n .     P l e a s e   s e e   t h e   c o m m e n t s 
                                 o n   t h e   r e t u r n   s t a t e m e n t   a t   t h e   e n d   o f   t h i s   f u n c t i o n 
                                 w h i c h   d e s c r i b e   t h e   a r r a y   i t   r e t u r n s .     W e   r e t u r n 
                                 i n t e r m e d i a t e   v a l u e s   b e c a u s e   t h e y   a r e   u s e f u l   i n   a 
                                 v a r i e t y   o f   o t h e r   c o n t e x t s .     * / 
 
 f u n c t i o n   s u n p o s ( j d ) 
 { 
         v a r   T ,   T 2 ,   L 0 ,   M ,   e ,   C ,   s u n L o n g ,   s u n A n o m a l y ,   s u n R , 
                 O m e g a ,   L a m b d a ,   e p s i l o n ,   e p s i l o n 0 ,   A l p h a ,   D e l t a , 
                 A l p h a A p p ,   D e l t a A p p ; 
 
         T   =   ( j d   -   J 2 0 0 0 )   /   J u l i a n C e n t u r y ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " S u n p o s .     T   =   "   +   T   +   " \ n " ; 
         T 2   =   T   *   T ; 
         L 0   =   2 8 0 . 4 6 6 4 6   +   ( 3 6 0 0 0 . 7 6 9 8 3   *   T )   +   ( 0 . 0 0 0 3 0 3 2   *   T 2 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " L 0   =   "   +   L 0   +   " \ n " ; 
         L 0   =   f i x a n g l e ( L 0 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " L 0   =   "   +   L 0   +   " \ n " ; 
         M   =   3 5 7 . 5 2 9 1 1   +   ( 3 5 9 9 9 . 0 5 0 2 9   *   T )   +   ( - 0 . 0 0 0 1 5 3 7   *   T 2 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " M   =   "   +   M   +   " \ n " ; 
         M   =   f i x a n g l e ( M ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " M   =   "   +   M   +   " \ n " ; 
         e   =   0 . 0 1 6 7 0 8 6 3 4   +   ( - 0 . 0 0 0 0 4 2 0 3 7   *   T )   +   ( - 0 . 0 0 0 0 0 0 1 2 6 7   *   T 2 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " e   =   "   +   e   +   " \ n " ; 
         C   =   ( ( 1 . 9 1 4 6 0 2   +   ( - 0 . 0 0 4 8 1 7   *   T )   +   ( - 0 . 0 0 0 0 1 4   *   T 2 ) )   *   d s i n ( M ) )   + 
                 ( ( 0 . 0 1 9 9 9 3   -   ( 0 . 0 0 0 1 0 1   *   T ) )   *   d s i n ( 2   *   M ) )   + 
                 ( 0 . 0 0 0 2 8 9   *   d s i n ( 3   *   M ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " C   =   "   +   C   +   " \ n " ; 
         s u n L o n g   =   L 0   +   C ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " s u n L o n g   =   "   +   s u n L o n g   +   " \ n " ; 
         s u n A n o m a l y   =   M   +   C ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " s u n A n o m a l y   =   "   +   s u n A n o m a l y   +   " \ n " ; 
         s u n R   =   ( 1 . 0 0 0 0 0 1 0 1 8   *   ( 1   -   ( e   *   e ) ) )   /   ( 1   +   ( e   *   d c o s ( s u n A n o m a l y ) ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " s u n R   =   "   +   s u n R   +   " \ n " ; 
         O m e g a   =   1 2 5 . 0 4   -   ( 1 9 3 4 . 1 3 6   *   T ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " O m e g a   =   "   +   O m e g a   +   " \ n " ; 
         L a m b d a   =   s u n L o n g   +   ( - 0 . 0 0 5 6 9 )   +   ( - 0 . 0 0 4 7 8   *   d s i n ( O m e g a ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " L a m b d a   =   "   +   L a m b d a   +   " \ n " ; 
         e p s i l o n 0   =   o b l i q e q ( j d ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " e p s i l o n 0   =   "   +   e p s i l o n 0   +   " \ n " ; 
         e p s i l o n   =   e p s i l o n 0   +   ( 0 . 0 0 2 5 6   *   d c o s ( O m e g a ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " e p s i l o n   =   "   +   e p s i l o n   +   " \ n " ; 
         A l p h a   =   r t d ( M a t h . a t a n 2 ( d c o s ( e p s i l o n 0 )   *   d s i n ( s u n L o n g ) ,   d c o s ( s u n L o n g ) ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " A l p h a   =   "   +   A l p h a   +   " \ n " ; 
         A l p h a   =   f i x a n g l e ( A l p h a ) ; 
 / / / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " A l p h a   =   "   +   A l p h a   +   " \ n " ; 
         D e l t a   =   r t d ( M a t h . a s i n ( d s i n ( e p s i l o n 0 )   *   d s i n ( s u n L o n g ) ) ) ; 
 / / / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " D e l t a   =   "   +   D e l t a   +   " \ n " ; 
         A l p h a A p p   =   r t d ( M a t h . a t a n 2 ( d c o s ( e p s i l o n )   *   d s i n ( L a m b d a ) ,   d c o s ( L a m b d a ) ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " A l p h a A p p   =   "   +   A l p h a A p p   +   " \ n " ; 
         A l p h a A p p   =   f i x a n g l e ( A l p h a A p p ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " A l p h a A p p   =   "   +   A l p h a A p p   +   " \ n " ; 
         D e l t a A p p   =   r t d ( M a t h . a s i n ( d s i n ( e p s i l o n )   *   d s i n ( L a m b d a ) ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " D e l t a A p p   =   "   +   D e l t a A p p   +   " \ n " ; 
 
         r e t u r n   n e w   A r r a y (                                   / /     A n g u l a r   q u a n t i t i e s   a r e   e x p r e s s e d   i n   d e c i m a l   d e g r e e s 
                 L 0 ,                                                       / /     [ 0 ]   G e o m e t r i c   m e a n   l o n g i t u d e   o f   t h e   S u n 
                 M ,                                                         / /     [ 1 ]   M e a n   a n o m a l y   o f   t h e   S u n 
                 e ,                                                         / /     [ 2 ]   E c c e n t r i c i t y   o f   t h e   E a r t h ' s   o r b i t 
                 C ,                                                         / /     [ 3 ]   S u n ' s   e q u a t i o n   o f   t h e   C e n t r e 
                 s u n L o n g ,                                             / /     [ 4 ]   S u n ' s   t r u e   l o n g i t u d e 
                 s u n A n o m a l y ,                                       / /     [ 5 ]   S u n ' s   t r u e   a n o m a l y 
                 s u n R ,                                                   / /     [ 6 ]   S u n ' s   r a d i u s   v e c t o r   i n   A U 
                 L a m b d a ,                                               / /     [ 7 ]   S u n ' s   a p p a r e n t   l o n g i t u d e   a t   t r u e   e q u i n o x   o f   t h e   d a t e 
                 A l p h a ,                                                 / /     [ 8 ]   S u n ' s   t r u e   r i g h t   a s c e n s i o n 
                 D e l t a ,                                                 / /     [ 9 ]   S u n ' s   t r u e   d e c l i n a t i o n 
                 A l p h a A p p ,                                           / /   [ 1 0 ]   S u n ' s   a p p a r e n t   r i g h t   a s c e n s i o n 
                 D e l t a A p p                                             / /   [ 1 1 ]   S u n ' s   a p p a r e n t   d e c l i n a t i o n 
         ) ; 
 } 
 
 / *     E Q U A T I O N O F T I M E     - -     C o m p u t e   e q u a t i o n   o f   t i m e   f o r   a   g i v e n   m o m e n t . 
                                                 R e t u r n s   t h e   e q u a t i o n   o f   t i m e   a s   a   f r a c t i o n   o f 
                                                 a   d a y .     * / 
 
 f u n c t i o n   e q u a t i o n O f T i m e ( j d ) 
 { 
         v a r   a l p h a ,   d e l t a P s i ,   E ,   e p s i l o n ,   L 0 ,   t a u 
 
         t a u   =   ( j d   -   J 2 0 0 0 )   /   J u l i a n M i l l e n n i u m ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " e q u a t i o n O f T i m e .     t a u   =   "   +   t a u   +   " \ n " ; 
         L 0   =   2 8 0 . 4 6 6 4 5 6 7   +   ( 3 6 0 0 0 7 . 6 9 8 2 7 7 9   *   t a u )   + 
                   ( 0 . 0 3 0 3 2 0 2 8   *   t a u   *   t a u )   + 
                   ( ( t a u   *   t a u   *   t a u )   /   4 9 9 3 1 )   + 
                   ( - ( ( t a u   *   t a u   *   t a u   *   t a u )   /   1 5 3 0 0 ) )   + 
                   ( - ( ( t a u   *   t a u   *   t a u   *   t a u   *   t a u )   /   2 0 0 0 0 0 0 ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " L 0   =   "   +   L 0   +   " \ n " ; 
         L 0   =   f i x a n g l e ( L 0 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " L 0   =   "   +   L 0   +   " \ n " ; 
         a l p h a   =   s u n p o s ( j d ) [ 1 0 ] ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " a l p h a   =   "   +   a l p h a   +   " \ n " ; 
         d e l t a P s i   =   n u t a t i o n ( j d ) [ 0 ] ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " d e l t a P s i   =   "   +   d e l t a P s i   +   " \ n " ; 
         e p s i l o n   =   o b l i q e q ( j d )   +   n u t a t i o n ( j d ) [ 1 ] ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " e p s i l o n   =   "   +   e p s i l o n   +   " \ n " ; 
         E   =   L 0   +   ( - 0 . 0 0 5 7 1 8 3 )   +   ( - a l p h a )   +   ( d e l t a P s i   *   d c o s ( e p s i l o n ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " E   =   "   +   E   +   " \ n " ; 
         E   =   E   -   2 0 . 0   *   ( M a t h . f l o o r ( E   /   2 0 . 0 ) ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " E f i x e d   =   "   +   E   +   " \ n " ; 
         E   =   E   /   ( 2 4   *   6 0 ) ; 
 / / d o c u m e n t . d e b u g . l o g . v a l u e   + =   " E d a y   =   "   +   E   +   " \ n " ; 
 
         r e t u r n   E ; 
 } 
  
  
 f u n c t i o n   w i n d o w _ o n l o a d ( )   {  
 c a l c G r e g o r i a n ( ) ;  
 }  
 v a r   N o r m L e a p   =   n e w   A r r a y ( " N o r m a l   y e a r " ,   " L e a p   y e a r " ) ;  
 f u n c t i o n   l e a p _ g r e g o r i a n ( y e a r )  
 {  
         r e t u r n   ( ( y e a r   %   4 )   = =   0 )   & &  
                         ( ! ( ( ( y e a r   %   1 0 0 )   = =   0 )   & &   ( ( y e a r   %   4 0 0 )   ! =   0 ) ) ) ;  
 }  
 v a r   P E R S I A N _ E P O C H   =   1 9 4 8 3 2 0 . 5 ;  
 v a r   P E R S I A N _ W E E K D A Y S   =   n e w   A r r a y ( " JC4F(G" ,   " /H4F(G" ,  
                                                                   " 3G  4F(G" ,   " †G'14F(G" ,  
                                                                   " ~F,4F(G" ,   " ,E9G" ,   " 4F(G" ) ;  
   v a r   P E R S I A N _ m o a n t s a   =   n e w   A r r a y ( " A1H1/JF"   , " '1/J(G4*"   , " .1/'/"   ,  
                                                                     " *J1"   , " E1/'/" ,   " 4G1JH1"   ,  
                                                                     " EG1"   , " "('F" , " "01" ,  
                                                                     " /J" ,   " (GEF"   , " '3AF/"     ) ;  
                                                                  
  
 f u n c t i o n   u p d a t e F r o m G r e g o r i a n ( )  
 {  
         v a r   j ,   y e a r ,   m o n ,   m d a y ,   h o u r ,   m i n ,   s e c ,  
                 w e e k d a y ,   j u l c a l ,   h e b c a l ,   i s l c a l ,   h m i n d e x ,   u t i m e ,   i s o w e e k ,  
                 m a y _ c o u n t c a l ,   m a y h a a b c a l ,   m a y t z o l k i n c a l ,   b a h c a l ,   f r r c a l ,  
                 i n d c a l ,   i s o d a y ,   x g r e g c a l ;  
  
 / / g e t   t i m e  
       d   =   n e w   D a t e ( ) ;  
        
 / /    
       y e a r   =   d . g e t Y e a r ( ) ;  
         m o n   =     d . g e t M o n t h ( ) ;  
         m d a y   =   d . g e t D a t e ( ) ;  
         h o u r   =   m i n   =   s e c   =   0 ;  
       / /   h o u r   =   d . g e t U T C H o u r s ( ) ;  
       / /   m i n   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . m i n . v a l u e ) ;  
     / /     s e c   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . s e c . v a l u e ) ;  
  
  
       / /   y e a r   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . y e a r . v a l u e ) ;  
       / /   m o n   =   d o c u m e n t . g r e g o r i a n . m o n t h . s e l e c t e d I n d e x ;  
       / /   m d a y   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . d a y . v a l u e ) ;  
       / /   h o u r   =   m i n   =   s e c   =   0 ;  
       / /   h o u r   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . h o u r . v a l u e ) ;  
     / /     m i n   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . m i n . v a l u e ) ;  
     / /     s e c   =   n e w   N u m b e r ( d o c u m e n t . g r e g o r i a n . s e c . v a l u e ) ;  
  
         / /     U p d a t e   J u l i a n   d a y  
  
         j   =   g r e g o r i a n _ t o _ j d ( y e a r ,   m o n   +   1 ,   m d a y )   +  
                       ( ( s e c   +   6 0   *   ( m i n   +   6 0   *   h o u r ) )   /   8 6 4 0 0 . 0 ) ;  
  
         / / d o c u m e n t . j u l i a n d a y . d a y . v a l u e   =   j ;  
         / / d o c u m e n t . m o d i f i e d j u l i a n d a y . d a y . v a l u e   =   j   -   J M J D ;  
  
         / /     U p d a t e   d a y   o f   w e e k   i n   G r e g o r i a n   b o x  
  
       w e e k d a y   =   j w d a y ( j ) ;  
     / / d o c u m e n t . g r e g o r i a n . w d a y . v a l u e   =   W e e k d a y s [ w e e k d a y ] ;  
  
         / /     U p d a t e   l e a p   y e a r   s t a t u s   i n   G r e g o r i a n   b o x  
  
       / /   d o c u m e n t . g r e g o r i a n . l e a p . v a l u e   =   N o r m L e a p [ l e a p _ g r e g o r i a n ( y e a r )   ?   1   :   0 ] ;  
  
         / /     U p d a t e   J u l i a n   C a l e n d a r  
  
          
  
        
          
  
         / /     U p d a t e   P e r s i a n   C a l e n d a r  
  
         p e r s c a l   =   j d _ t o _ p e r s i a n ( j ) ;  
         / / w i n d o w . f a r s . i n n e r H T M L   =     p e r s c a l [ 2 ]   +   "   "   +   P E R S I A N _ m o a n t s a [ p e r s c a l [ 1 ] - 1 ]   + "   "   + p e r s c a l [ 0 ] ;  
         w i n d o w . f a r s . i n n e r H T M L   =   P E R S I A N _ W E E K D A Y S [ w e e k d a y ]   +   "   "   +   p e r s c a l [ 2 ]   +   "   "   +   P E R S I A N _ m o a n t s a [ p e r s c a l [ 1 ] - 1 ]   + "   "   + p e r s c a l [ 0 ] ;  
       / /   d o c u m e n t . p e r s i a n . y e a r . v a l u e   =   p e r s c a l [ 0 ] ;  
       / /   d o c u m e n t . p e r s i a n . m o n t h . s e l e c t e d I n d e x   =   p e r s c a l [ 1 ]   -   1 ;  
       / /   d o c u m e n t . p e r s i a n . d a y . v a l u e   =   p e r s c a l [ 2 ] ;  
       / /   d o c u m e n t . p e r s i a n . w d a y . v a l u e   =   P E R S I A N _ W E E K D A Y S [ w e e k d a y ] ;  
         / / d o c u m e n t . p e r s i a n . l e a p . v a l u e   =   N o r m L e a p [ l e a p _ p e r s i a n ( p e r s c a l [ 0 ] )   ?   1   :   0 ] ;  
  
 }  
  
  
  
  
 v a r   G R E G O R I A N _ E P O C H   =   1 7 2 1 4 2 5 . 5 ;  
  
 f u n c t i o n   g r e g o r i a n _ t o _ j d ( y e a r ,   m o n t h ,   d a y )  
 {  
         r e t u r n   ( G R E G O R I A N _ E P O C H   -   1 )   +  
                       ( 3 6 5   *   ( y e a r   -   1 ) )   +  
                       M a t h . f l o o r ( ( y e a r   -   1 )   /   4 )   +  
                       ( - M a t h . f l o o r ( ( y e a r   -   1 )   /   1 0 0 ) )   +  
                       M a t h . f l o o r ( ( y e a r   -   1 )   /   4 0 0 )   +  
                       M a t h . f l o o r ( ( ( ( 3 6 7   *   m o n t h )   -   3 6 2 )   /   1 2 )   +  
                       ( ( m o n t h   < =   2 )   ?   0   :  
                                                               ( l e a p _ g r e g o r i a n ( y e a r )   ?   - 1   :   - 2 )  
                       )   +  
                       d a y ) ;  
 }  
 f u n c t i o n   j d _ t o _ p e r s i a n ( j d )  
 {  
         v a r   y e a r ,   m o n t h ,   d a y ,   d e p o c h ,   c y c l e ,   c y e a r ,   y c y c l e ,  
                 a u x 1 ,   a u x 2 ,   y d a y ;  
  
  
         j d   =   M a t h . f l o o r ( j d )   +   0 . 5 ;  
  
         d e p o c h   =   j d   -   p e r s i a n _ t o _ j d ( 4 7 5 ,   1 ,   1 ) ;  
         c y c l e   =   M a t h . f l o o r ( d e p o c h   /   1 0 2 9 9 8 3 ) ;  
         c y e a r   =   m o d ( d e p o c h ,   1 0 2 9 9 8 3 ) ;  
         i f   ( c y e a r   = =   1 0 2 9 9 8 2 )   {  
                 y c y c l e   =   2 8 2 0 ;  
         }   e l s e   {  
                 a u x 1   =   M a t h . f l o o r ( c y e a r   /   3 6 6 ) ;  
                 a u x 2   =   m o d ( c y e a r ,   3 6 6 ) ;  
                 y c y c l e   =   M a t h . f l o o r ( ( ( 2 1 3 4   *   a u x 1 )   +   ( 2 8 1 6   *   a u x 2 )   +   2 8 1 5 )   /   1 0 2 8 5 2 2 )   +  
                                         a u x 1   +   1 ;  
         }  
         y e a r   =   y c y c l e   +   ( 2 8 2 0   *   c y c l e )   +   4 7 4 ;  
         i f   ( y e a r   < =   0 )   {  
                 y e a r - - ;  
         }  
         y d a y   =   ( j d   -   p e r s i a n _ t o _ j d ( y e a r ,   1 ,   1 ) )   +   1 ;  
         m o n t h   =   ( y d a y   < =   1 8 6 )   ?   M a t h . c e i l ( y d a y   /   3 1 )   :   M a t h . c e i l ( ( y d a y   -   6 )   /   3 0 ) ;  
         d a y   =   ( j d   -   p e r s i a n _ t o _ j d ( y e a r ,   m o n t h ,   1 ) )   +   1 ;  
         r e t u r n   n e w   A r r a y ( y e a r ,   m o n t h ,   d a y ) ;  
 }  
  
 f u n c t i o n   p e r s i a n _ t o _ j d ( y e a r ,   m o n t h ,   d a y )  
 {  
         v a r   e p b a s e ,   e p y e a r ;  
  
         e p b a s e   =   y e a r   -   ( ( y e a r   > =   0 )   ?   4 7 4   :   4 7 3 ) ;  
         e p y e a r   =   4 7 4   +   m o d ( e p b a s e ,   2 8 2 0 ) ;  
  
         r e t u r n   d a y   +  
                         ( ( m o n t h   < =   7 )   ?  
                                 ( ( m o n t h   -   1 )   *   3 1 )   :  
                                 ( ( ( m o n t h   -   1 )   *   3 0 )   +   6 )  
                         )   +  
                         M a t h . f l o o r ( ( ( e p y e a r   *   6 8 2 )   -   1 1 0 )   /   2 8 1 6 )   +  
                         ( e p y e a r   -   1 )   *   3 6 5   +  
                         M a t h . f l o o r ( e p b a s e   /   2 8 2 0 )   *   1 0 2 9 9 8 3   +  
                         ( P E R S I A N _ E P O C H   -   1 ) ;  
 }  
  
 f u n c t i o n   l e a p _ p e r s i a n ( y e a r )  
 {  
         r e t u r n   ( ( ( ( ( ( y e a r   -   ( ( y e a r   >   0 )   ?   4 7 4   :   4 7 3 ) )   %   2 8 2 0 )   +   4 7 4 )   +   3 8 )   *   6 8 2 )   %   2 8 1 6 )   <   6 8 2 ;  
 }  
  
  
  
 f u n c t i o n   c a l c G r e g o r i a n ( )  
 {  
         u p d a t e F r o m G r e g o r i a n ( ) ;  
 }  
  
 f u n c t i o n   n o t h i n g ( )   { }    
 
