astrognome/swe/doc/swephprg.htm

14344 lines
646 KiB
HTML
Raw Normal View History

2013-07-08 23:15:13 +00:00
<html>
<head>
<meta name=Generator content="Microsoft Office HTML Filter 2.0">
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Originator content="Microsoft Word 9">
<title>Programming interface to the Swiss Ephemeris</title>
<style>
<!--
p.MsoNormal, li.MsoNormal, div.MsoNormal
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
h1
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
text-indent:0cm;
page-break-after:avoid;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
color:black;
letter-spacing:1.0pt;
font-weight:normal;}
h2
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
text-indent:0cm;
page-break-after:avoid;
text-autospace:ideograph-numeric;
font-size:16.0pt;
font-family:"Times New Roman";
color:blue;}
h3
{
margin-top:12.0pt;
margin-right:14.45pt;
margin-bottom:3.0pt;
margin-left:0cm;
text-indent:0cm;
page-break-after:avoid;
text-autospace:ideograph-numeric;
font-size:14.0pt;
font-family:"Times New Roman";
color:blue;}
h4
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:18.0pt;
text-indent:-18.0pt;
page-break-after:avoid;
text-autospace:ideograph-numeric;
font-size:12.0pt;
font-family:"Times New Roman";
color:blue;}
h5
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:0cm;
text-indent:0cm;
text-autospace:ideograph-numeric;
font-size:12.0pt;
font-family:"Times New Roman";
color:blue;
font-weight:normal;}
h6
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:57.6pt;
text-indent:-57.6pt;
text-autospace:ideograph-numeric;
font-size:11.0pt;
font-family:"Times New Roman";
color:blue;
font-weight:normal;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:64.8pt;
text-indent:-64.8pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
color:blue;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:72.0pt;
text-indent:-72.0pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
font-style:italic;}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.0pt;
margin-left:79.2pt;
text-indent:-79.2pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:Arial;
font-weight:bold;
font-style:italic;}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:10.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:20.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:30.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:40.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:50.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:60.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:70.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:80.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:90.0pt;
margin-bottom:.0001pt;
text-indent:-10.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman";}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-autospace:ideograph-numeric;
font-size:11.0pt;
font-family:Verdana;
color:navy;
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:10.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Verdana;
color:navy;
font-weight:bold;}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:20.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:Verdana;
color:navy;}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:30.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:8.0pt;
font-family:Verdana;
color:navy;}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:40.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:Verdana;
color:navy;}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:50.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:8.0pt;
font-family:Verdana;
color:navy;}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:60.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:"Times New Roman";}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:70.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:"Times New Roman";}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:80.0pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:"Times New Roman";}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
text-align:center;
text-autospace:ideograph-numeric;
font-size:13.0pt;
font-family:"Times New Roman";
font-weight:bold;}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
text-autospace:ideograph-numeric;
font-size:20.0pt;
font-family:Arial;}
span.MsoFootnoteReference
{
vertical-align:super;}
p.MsoList, li.MsoList, div.MsoList
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
color:black;}
p.MsoSignature, li.MsoSignature, div.MsoSignature
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:35.4pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
color:black;}
p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent
{margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:14.15pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoSalutation, li.MsoSalutation, div.MsoSalutation
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.MsoBodyText2, li.MsoBodyText2, div.MsoBodyText2
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
font-weight:bold;}
a:link, span.MsoHyperlink
{
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{
color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
span.WW8Num38z0
{
font-style:normal;}
span.FileName
{
color:teal;}
span.FuncName
{
color:navy;}
span.VarName
{
font-weight:bold;}
span.Inverse
{
color:white;
background:blue;
font-weight:bold;}
p.berschrift, li.berschrift, div.berschrift
{
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:0cm;
page-break-after:avoid;
text-autospace:ideograph-numeric;
font-size:14.0pt;
font-family:Arial;}
p.Verzeichnis, li.Verzeichnis, div.Verzeichnis
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Textkrper-Einzug, li.Textkrper-Einzug, div.Textkrper-Einzug
{
margin-top:0cm;
margin-right:-1.4pt;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent5, li.Aufzhlungszeichent5, div.Aufzhlungszeichent5
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:14.15pt;
margin-bottom:.0001pt;
text-indent:-14.15pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent54, li.Aufzhlungszeichent54, div.Aufzhlungszeichent54
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:14.15pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent53, li.Aufzhlungszeichent53, div.Aufzhlungszeichent53
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.6pt;
margin-bottom:.0001pt;
text-indent:-21.6pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent52, li.Aufzhlungszeichent52, div.Aufzhlungszeichent52
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:28.3pt;
margin-bottom:.0001pt;
text-indent:-14.15pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent51, li.Aufzhlungszeichent51, div.Aufzhlungszeichent51
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.SourceText, li.SourceText, div.SourceText
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:57.6pt;
margin-bottom:.0001pt;
text-indent:-28.8pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:Verdana;
color:navy;}
p.Textkrper-Einzug0, li.Textkrper-Einzug0, div.Textkrper-Einzug0
{
margin-top:0cm;
margin-right:-1.4pt;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent50, li.Aufzhlungszeichent50, div.Aufzhlungszeichent50
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:14.15pt;
margin-bottom:.0001pt;
text-indent:-14.15pt;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent540, li.Aufzhlungszeichent540, div.Aufzhlungszeichent540
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:6.0pt;
margin-left:14.15pt;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent530, li.Aufzhlungszeichent530, div.Aufzhlungszeichent530
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.6pt;
margin-bottom:.0001pt;
text-indent:-21.6pt;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent520, li.Aufzhlungszeichent520, div.Aufzhlungszeichent520
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:28.3pt;
margin-bottom:.0001pt;
text-indent:-14.15pt;
font-size:10.0pt;
font-family:Arial;}
p.Aufzhlungszeichent510, li.Aufzhlungszeichent510, div.Aufzhlungszeichent510
{
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:Arial;}
p.Inhaltsverzeichnis10, li.Inhaltsverzeichnis10, div.Inhaltsverzeichnis10
{
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:127.35pt;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.TabellenInhalt, li.TabellenInhalt, div.TabellenInhalt
{
margin:0cm;
margin-bottom:.0001pt;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;}
p.Tabellenberschrift, li.Tabellenberschrift, div.Tabellenberschrift
{
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
text-autospace:ideograph-numeric;
font-size:10.0pt;
font-family:Arial;
font-weight:bold;}
span.msoIns
{
text-decoration:underline;
color:teal;}
span.msoDel
{
text-decoration:line-through;
color:red;}
span.msoChangeProp
{
color:black;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
</head>
<body lang=DE-CH link=blue vlink=purple style='text-justify-trim:
punctuation'>
<div class=Section1>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
style='font-size:20.0pt;color:gray'>Programming interface to the Swiss
Ephemeris</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Copyright <b>Astrodienst AG</b> 1997-2011.</span></p>
<p class=MsoNormal><span lang=EN-US>This document describes the proprietary
programmer's interface to the Swiss Ephemeris DLL. </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Swiss Ephemeris is made available by its
authors under a dual licensing<6E> system.
The software developer, who uses any part of Swiss Ephemeris<69> in his or her software, must choose between
one of the two license models,<2C><> which
are</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD> a)
GNU public license version 2 or later</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD> b)
Swiss Ephemeris Professional License</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The choice must be made before the software
developer distributes software<72>
containing parts of Swiss Ephemeris to others, and before any public
service using the developed software is activated.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>If the developer chooses the GNU GPL
software license, he or she must fulfill the conditions of that license, which
includes the obligation to place his or her whole software project under the
GNU GPL or a compatible license. See
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>If the developer chooses the Swiss
Ephemeris Professional license, he must follow the instructions as found in
http://www.astro.com/swisseph/ and purchase the Swiss Ephemeris Professional
Edition from Astrodienst and sign the corresponding license contract.</span></p>
<p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
style='font-size:18.0pt'>&nbsp;</span></p>
</div>
<span lang=EN-US style='font-size:10.0pt;font-family:Arial;'><br clear=all style='page-break-before:auto;'>
</span>
<div class=Section2>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479388">1. The programming
steps to get a planet<65>s position<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>5</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479389">2. The functions
swe_calc_ut() and swe_calc()<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>7</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479390">2.1. The call parameters<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>7</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479391">2.2. Error handling and return values<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>7</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479392">2.3. Bodies ( int ipl )<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>8</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479393">Additional asteroids<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>8</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479394">Fictitious planets<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>11</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479395">Obliquity and nutation<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>13</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479396">2.4. Options chosen by flag bits (long<6E> iflag)<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>13</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479397">2.4.1. The use of flag bits<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>13</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479398">2.4.2. Ephemeris flags<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>13</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479399">2.4.3. Speed flag<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479400">2.4.4. Coordinate systems, degrees and radians<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479401">2.4.5. Specialties (going beyond common interest)<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479402">a. True or apparent positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479403">b. Topocentric positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479404">c. Heliocentric positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479405">d. Barycentric positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>14</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479406">e. Astrometric positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>15</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479407">f. True or mean equinox of date<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>15</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479408">g. J2000 positions and positions referred to other
equinoxes<span style='font-size:9.0pt;color:navy;display:none;
text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>15</span></a></span></span></p>
<p class=MsoToc5><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479409">h. Sidereal positions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>15</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479410">2.5. Position and Speed (double xx[6])<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>15</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479411">3. The function
swe_get_planet_name()<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>15</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479412">4. Fixed stars
functions<span style='color:navy;display:none;text-decoration:
none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>16</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479413">4.1 swe_fixstar_ut<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>16</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479414">4.2 swe_fixstar()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>16</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479415">4.3 swe_fixstar_mag()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>17</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479416">5. Apsides
functions<span style='color:navy;display:none;text-decoration:
none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>17</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479417">5.1 swe_nod_aps_ut<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>17</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479418">5.2 swe_nod_aps()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>17</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479419">6. Eclipse and
planetary phenomena functions<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>19</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479420"><span lang=EN-GB>6.0.
Example of a typical eclipse calculation</span><span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>19</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479421">6.1. swe_sol_eclipse_when_loc() and
swe_lun_occult_when_loc()<span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>20</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479422">6.2. swe_sol_eclipse_when_glob()<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>20</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479423">6.3. swe_sol_eclipse_how ()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>21</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479424">6.4. swe_sol_eclipse_where ()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>22</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479425">6.5. swe_lun_occult_when_loc()<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>23</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479426">6.6. swe_lun_occult_when_glob()<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>24</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479427">6.7. swe_lun_occult_where ()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>25</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479428">6.8. swe_lun_eclipse_when ()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>26</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479429">6.9. swe_lun_eclipse_how ()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>26</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479430">6.10. swe_rise_trans() and swe_rise_trans_true_hor()
(risings, settings, meridian transits)<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>27</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479431">6.11. swe_pheno_ut() and swe_pheno(), planetary phenomena<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>28</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479432">6.12. swe_azalt(), horizontal coordinates, azimuth,
altitude<span style='font-size:9.0pt;color:navy;display:none;
text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>28</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479433">6.13. swe_azalt_rev()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>29</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479434">6.14. swe_refrac(), swe_refract_extended(), refraction<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>29</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479435">6.15. Heliacal risings etc.: swe_heliacal_ut()<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>30</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479436">6.16. Magnitude limit for visibility: swe_vis_limit_mag()<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>31</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479437">7. Date and time
conversion functions<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>31</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479438">7.1 Calendar Date and Julian Day: swe_julday(),
swe_date_conversion(), /swe_revjul()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>31</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479439">7.2. UTC and Julian day: swe_utc_time_zone(),
swe_utc_to_jd(), swe_jdet_to_utc(), swe_jdut1_to_utc()<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>32</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479440">7.3. Future insertion of leap seconds and the file
swe_leapsec.txt<span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>34</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479441">7.4. Mean solar time versus True solar time:
swe_time_equ()<span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>34</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479442">8. Delta T-related
functions<span style='color:navy;display:none;text-decoration:
none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>34</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479443">8.1 swe_deltat()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>34</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479444">8.2 swe_set_tid_acc(), swe_get_tid_acc()<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>35</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479445">8.3. Future updates of Delta T and the file
swe_deltat.txt<span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>35</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479446">9. The function
swe_set_topo() for topocentric planet positions<span style='color:navy;
display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>35</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479447"><span lang=FR>10. Sidereal mode functions</span><span
style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>35</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479448"><span lang=FR>10.1.
swe_set_sid_mode()</span><span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>35</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479449">10.2. swe_get_ayanamsa_ut() and swe_get_ayanamsa()<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>37</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479450">11. The Ephemeris
file related functions<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>37</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479451">11.1 swe_set_ephe_path()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>37</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479452">11.2 swe_close()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>38</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479453">11.3 swe_set_jpl_file()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>38</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479454">11.4 swe_version()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>38</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479455">12. House cusp
calculation<span style='color:navy;display:none;text-decoration:
none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>39</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479456">12.1 swe_houses()<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>39</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479457">12.2 swe_houses_armc()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>39</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479458">12.3 swe_houses_ex()<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>39</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479459">13. The sign of
geographical longitudes in Swisseph functions<span style='color:navy;
display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>41</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479460">14. Getting the
house position of a planet with swe_house_pos()<span style='color:navy;
display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>41</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479461">14.1. Calculating
the Gauquelin sector position of a planet with swe_house_pos() or
swe_gauquelin_sector()<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>42</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479462">15. Sidereal time
with swe_sidtime() and swe_sidtime0()<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>43</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479463">16. Summary of
SWISSEPH functions<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>44</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479464">16.1. Calculation of planets and stars<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>44</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479465">Planets, moon, asteroids, lunar nodes, apogees,
fictitious bodies<span style='font-size:8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>44</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479466">Fixed stars<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>44</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479467">Set the geographic location for topocentric planet
computation<span style='font-size:8.0pt;color:navy;display:none;
text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>44</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479468">Set the sidereal mode for sidereal planet positions<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>44</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479469">16.2 Eclipses and planetary phenomena<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>45</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479470">Find the next eclipse for a given geographic position<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>45</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479471">Find the next eclipse globally<span style='font-size:
8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>45</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479472">Compute the attributes of a solar eclipse for a given
tjd, geographic long., latit. and height<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>45</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479473">Find out the geographic position where a central eclipse
is central or a non-central one maximal<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>45</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479474">Find the next occultation of a body by the moon for a
given geographic position<span style='font-size:8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>46</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479475">Find the next occultation globally<span style='font-size:
8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>46</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479476">Find the next lunar eclipse<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>46</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479477">Compute the attributes of a lunar eclipse at a given time<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>46</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479478">Compute risings, settings and meridian transits of a body<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>46</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479479">Compute planetary phenomena<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>47</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479480">16.3. Date and time conversion<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>47</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479481">Delta T from Julian day number<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>47</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479482">Julian day number from year, month, day, hour, with check
whether date is legal<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>48</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479483">Julian day number from year, month, day, hour<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>48</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479484">Year, month, day, hour from Julian day number<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>48</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479485">Local time to UTC and UTC to local time<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>48</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479486">UTC to jd (TT and UT1)<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>48</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479487">TT (ET1) to UTC<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479488">UTC to TT (ET1)<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479489">Get tidal acceleration used in swe_deltat()<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479490">Set tidal acceleration to be used in swe_deltat()<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479491">Equation of time<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479492">16.4. Initialization, setup, and closing functions<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479493">Set directory path of ephemeris files<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>49</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479494">16.5. House calculation<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>50</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479495">Sidereal time<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>50</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479496">House cusps, ascendant and MC<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>50</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479497">Extended house function; to compute tropical or sidereal
positions<span style='font-size:8.0pt;color:navy;display:none;
text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>50</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479498">Get the house position of a celestial point<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>50</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479499">Get the Gauquelin sector position for a body<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>51</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479500">16.6. Auxiliary functions<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479501">Coordinate transformation, from ecliptic to equator or
vice-versa<span style='font-size:8.0pt;color:navy;display:none;
text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479502">Coordinate transformation of position and speed, from
ecliptic to equator or vice-versa<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479503">Get the name of a planet<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479504">16.7. Other functions that may be useful<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479505">Normalize argument into interval [0..DEG360]<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479506">Distance in centisecs p1 - p2 normalized to [0..360]<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479507">Distance in degrees<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479508">Distance in centisecs p1 - p2 normalized to [-180..180]<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>52</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479509">Distance in degrees<span style='font-size:8.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479510">Round second, but at 29.5959 always down<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479511">Double to long with rounding, no overflow check<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479512">Day of week<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479513">Centiseconds -&gt; time string<span style='font-size:
8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479514">Centiseconds -&gt; longitude or latitude string<span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479515">Centiseconds -&gt; degrees string<span style='font-size:
8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479516">17. The SWISSEPH
DLLs<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>53</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479517">17.1 DLL Interface for brain damaged compilers<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>53</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479518">18. Using the DLL
with<EFBFBD> Visual Basic 5.0<span
style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>54</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479519">19. Using the DLL
with<EFBFBD> Borland Delphi and C++ Builder<span
style='color:navy;display:none;text-decoration:none;'>54</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479520">19.1 Delphi 2.0 and higher (32-bit)<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>54</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479521">19.2 Borland C++ Builder<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>55</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479522">20. Using the
Swiss Ephemeris with Perl<span
style='color:navy;display:none;text-decoration:none;'>55</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479523">21. The C sample
program<span style='color:navy;display:none;text-decoration:
none;'>.. </span><span
style='color:navy;display:none;text-decoration:none;'>56</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479524">21. The source
code distribution<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>57</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479525">22. The PLACALC
compatibility API<span
style='color:navy;display:none;text-decoration:none;'>57</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479526">23. Documentation
files<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>58</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479527">24. Swisseph with
different hardware and compilers<span style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>58</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479528">25. Debugging and
Tracing Swisseph<span style='color:navy;display:none;
text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>58</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479529">25.1. If you are using the DLL<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>58</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479530">25.2 If you are using the source code<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>59</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479531">Appendix<span
style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>59</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479532">Update and release history<span style='font-size:9.0pt;
color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>59</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479533">Changes from version 1.78 to 1.79<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>61</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479534">Changes from version 1.77 to 1.78<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>61</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479535">Changes from version 1.76 to 1.77<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>61</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479536">Changes from version 1.75 to 1.76<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>62</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479537">Changes from version 1.74 to version 1.75<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>62</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479538">Changes from version 1.73 to version 1.74<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>62</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479539">Changes from version 1.72 to version 1.73<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479540">Changes from version 1.71 to version 1.72<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479541">Changes from version 1.70.03 to version 1.71<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479542">Changes from version 1.70.02 to version 1.70.03<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479543">Changes from version 1.70.01 to version 1.70.02<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479544">Changes from version 1.70.00 to version 1.70.01<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479545">Changes from version 1.67 to version 1.70<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>63</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479546">Changes from version 1.66 to version 1.67<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479547">Changes from version 1.65 to version 1.66<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479548">Changes from version 1.64.01 to version 1.65.00<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479549">Changes from version 1.64 to version 1.64.01<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479550">Changes from version 1.63 to version 1.64<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479551">Changes from version 1.62 to version 1.63<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>64</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479552">Changes from version 1.61.03 to version 1.62<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479553">Changes from version 1.61 to 1.61.01<span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479554">Changes from version 1.60 to 1.61<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479555">Changes from version 1.51 to 1.60<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479556">Changes from version 1.50 to 1.51<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479557">Changes from version 1.40 to 1.50<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>65</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479558">Changes from version 1.31 to 1.40<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479559">Changes from version 1.30 to 1.31<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479560">Changes from version 1.27 to 1.30<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479561">Changes from version 1.26 to 1.27<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479562">Changes from version 1.25 to 1.26<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479563">Changes from version 1.22 to 1.23<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>66</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479564">Changes from version 1.21 to 1.22<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479565">Changes from version 1.20 to 1.21<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479566">Changes from version 1.11 to 1.20<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479567">Changes from version 1.10 to 1.11<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479568">Changes from version 1.04 to 1.10<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479569">Changes from Version 1.03 to 1.04<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479570">Changes from Version 1.02 to 1.03<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>67</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479571">Changes from Version 1.01 to 1.02<span style='font-size:
9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479572">Changes from Version 1.00<EFBFBD> to 1.01<span style='font-size:9.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479573">1. Sidereal time<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479574">2. Houses<span style='font-size:8.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc4><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479575">3. Ecliptic obliquity and nutation<span style='font-size:
8.0pt;color:navy;display:none;text-decoration:none;'>. </span><span
style='font-size:8.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479576">Appendix A<span
style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>68</span></a></span></span></p>
<p class=MsoToc3><span
class=MsoHyperlink><span lang=EN-US style='font-size:10.0pt'><a
href="#_Toc354479577">What is missing ?<span style='font-size:9.0pt;color:navy;
display:none;text-decoration:none;'>. </span><span
style='font-size:9.0pt;color:navy;display:none;text-decoration:
none;'>68</span></a></span></span></p>
<p class=MsoToc2><span
class=MsoHyperlink><span lang=EN-US><a href="#_Toc354479578">Index<span
style='color:navy;display:none;text-decoration:none;'>. </span><span
style='color:navy;display:none;text-decoration:none;'>69</span></a></span></span></p>
<p class=MsoToc2></p>
</div>
<b><span lang=DE style='font-size:10.0pt;font-family:Verdana;color:navy;'><br clear=all
style='page-break-before:auto;'>
</span></b>
<div class=Section3>
<p class=MsoNormal><span lang=DE
style='font-family:Verdana;color:navy;'>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm;page-break-before:always'><a
name="_Toc354479388"></a><a name=c1></a><span lang=EN-US>1. The programming steps to get a planet<65>s
position</span></h2>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><a name="_Hlk477829414"><span lang=EN-US>To </span></a><a
name="_Hlk477409073"></a><a name="OLE_LINK2"><span lang=EN-US>compute</span><span
lang=EN-US> a celestial body</span></a><span
lang=EN-US>or point with SWISSEPH, you have to do the following steps (use</span><span
class=FileName><span lang=EN-US style='font-family:Verdana;'> swetest.c</span></span><span lang=EN-US> as an example). The details of
the functions will be explained in the following chapters.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Set
the directory path of the ephemeris files, e.g.: </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <b>swe_set_ephe_path</b>(<28>C:\\SWEPH\\EPHE<48>);</span></p>
<p class=MsoSalutation><span lang=EN-US
style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>2..<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> From
the birth date, compute the </span><span class=FileName><span lang=EN-US
style='font-family:Verdana;'>Julian day number</span></span><u><span
lang=EN-US>:</span></u></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> jul_day_UT
= <b>swe_julday</b>(year, month, day, hour, gregflag);</span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>3..<2E> Compute a planet or other bodies:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>ret_flag = <b>swe_calc_ut</b>(jul_day_UT,
planet_no, flag, lon_lat_rad, err_msg); </span></p>
<p class=MsoNormal><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>or a
fixed star:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>ret_flag = <b>swe_fixstar_ut</b>(star_nam,
jul_day_UT, flag, lon_lat_rad, err_msg);</span></p>
<p class=MsoSalutation><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US
style='font-size:8.0pt'>Note:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:
8.0pt'><3E><><EFBFBD><EFBFBD><EFBFBD> The functions swe_calc_ut()
and swe_fixstar_ut() were introduced with Swisseph version 1.60.</span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:
8.0pt'><3E><><EFBFBD><EFBFBD><EFBFBD> If you use a Swisseph version
older than 1.60 or if you want to work with </span><span class=FileName><span
lang=EN-US style='font-size:8.0pt;font-family:Verdana;'>Ephemeris
Time</span></span><span lang=EN-US style='font-size:8.0pt'>, you have to
proceed as follows instead:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:
8.0pt;font-family:Symbol'>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US style='font-size:
8.0pt;font-family:Symbol'><3E><><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-US style='font-size:8.0pt'>First, if necessary, convert Universal Time
(UT) to Ephemeris Time (ET):</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>jul_day_ET = jul_day_UT + <b>swe_deltat</b>(jul_day_UT);</span></p>
<p class=MsoNormal><span lang=DA style='font-size:
8.0pt;'>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA style='font-size:
8.0pt;'><3E><><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-US style='font-size:8.0pt'>Then Compute a planet or other bodies:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>ret_flag = <b>swe_calc</b>(jul_day_ET,
planet_no, flag, lon_lat_rad, err_msg); </span></p>
<p class=MsoNormal><span lang=DA style='font-size:
8.0pt;'><3E><><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-US style='font-size:8.0pt'>or a fixed star:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>ret_flag = <b>swe_fixstar</b>(star_nam,
jul_day_ET, flag, lon_lat_rad, err_msg);</span></p>
<p class=MsoNormal><span lang=DA style='font-size:
8.0pt;font-family:"Courier New";'>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>5..<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> At
the end of your computations close all files and free memory calling </span><span
class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_close();</span></span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>&nbsp;</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:35.4pt'><span
lang=EN-US style='color:navy'>Here is a miniature sample program, it is in the
source distribution as </span><span class=FileName><span lang=EN-US
style='font-family:Verdana;'>swemini.c</span></span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>#include &quot;swephexp.h&quot; <20><><EFBFBD><EFBFBD> /* this includes<65> &quot;sweodef.h&quot; */</span></p>
<p class=SourceText><span lang=EN-US>int main()</span></p>
<p class=SourceText><span lang=EN-US>{</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
char *sp, sdate[AS_MAXCH], snam[40], serr[AS_MAXCH];<3B> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
int jday = 1, jmon = 1, jyear = 2000;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span><span
lang=FR>double jut = 0.0;</span></p>
<p class=SourceText><span lang=FR><EFBFBD> double tjd_ut, te, x2[6];</span></p>
<p class=SourceText><span lang=FR><EFBFBD> </span><span lang=DA>long iflag, iflgret;</span></p>
<p class=SourceText><span lang=DA><EFBFBD> int p;</span></p>
<p class=SourceText><span lang=DA><EFBFBD> iflag = SEFLG_SPEED;</span></p>
<p class=SourceText><span lang=DA><EFBFBD> </span><span lang=EN-US>while (TRUE) {</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
printf(&quot;\nDate (d.m.y) ?&quot;);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
gets(sdate);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /*
stop if a period . is entered */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
if (*sdate == '.') </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return OK;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
if (sscanf (sdate, &quot;%d%*c%d%*c%d&quot;,
&amp;jday,&amp;jmon,&amp;jyear) &lt; 1) exit(1);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> *
we have day, month and year and convert to Julian day number</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
tjd_ut = swe_julday(jyear,jmon,jday,jut,SE_GREG_CAL);<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * compute Ephemeris time from Universal
time by adding delta_t</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * not required for Swisseph versions
smaller than 1.60</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* te = tjd_ut + swe_deltat(tjd_ut); */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
printf(&quot;date: %02d.%02d.%d at 0:00 Universal time\n&quot;, jday,
jmon, jyear);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
printf(&quot;planet<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
\tlongitude\tlatitude\tdistance\tspeed long.\n&quot;);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * a loop over all planets</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
for (p = SE_SUN; p &lt;= SE_CHIRON; p++) {</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (p == SE_EARTH) continue;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* do the coordinate calculation for this
planet p</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>*/</span></p>
<p class=SourceText><span lang=EN-US>iflgret = swe_calc_ut(tjd_ut, p, iflag,
x2, serr);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* Swisseph versions older than 1.60 require the following </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* statement instead */</span></p>
<p class=SourceText><span lang=EN-US>/* iflgret = swe_calc(te, p, iflag, x2,
serr); */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * if there is a problem, a negative
value is returned and an </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * error message is in serr.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (iflgret &lt; 0) </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=PT-BR>printf(&quot;error: %s\n&quot;,
serr);</span></p>
<p class=SourceText><span lang=PT-BR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=EN-US>/*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * get the name of the planet p</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
swe_get_planet_name(p, snam);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> /*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> * print the coordinates</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
printf(&quot;%10s\t%11.7f\t%10.7f\t%10.7f\t%10.7f\n&quot;,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> snam, x2[0], x2[1], x2[2], x2[3]);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
}</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> }</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
return OK;</span></p>
<p class=SourceText><span lang=EN-US>}</span></p>
<h2 style='margin-left:0cm;text-indent:0cm;page-break-before:always'><a
name="_Hlk477399311"></a><a name="_Toc354479389"><span lang=EN-US>2. The functions swe_calc_ut() and swe_calc()</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479390"><span lang=EN-US>2.1. The call parameters</span></a></h3>
<p class=MsoBodyText><span class=FuncName><span lang=EN-US style='font-family:
Verdana;'>swe_calc_ut()</span></span><span lang=EN-US>
was introduced with Swisseph <b>version 1.60</b> and makes planetary
calculations a bit simpler. For the steps required, see the chapter<65> <a href="#_Toc476664303"><span
style='font-family:Verdana'>The programming steps to get a planet<65>s position</span></a></span><span
class=FileName><span lang=EN-US style='font-family:Verdana;'>.</span></span></p>
<p class=MsoBodyText><span class=FuncName><span lang=EN-US style='font-family:
Verdana;'>swe_calc_ut()</span></span><span lang=EN-US>
and </span><span class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc()</span></span><span lang=EN-US> work exactly
the same way except that </span><span class=FuncName><span lang=EN-US
style='font-family:Verdana;'>swe_calc()</span></span><span
lang=EN-US> requires <a href="#_Hlk477830987"><span style='font-family:Verdana'>Ephemeris
Time</span></a></span><span lang=EN-US>( more
accurate: </span><a name="_Hlk477831317"><span class=FileName><span lang=EN-US
style='font-family:Verdana;'>Dynamical Time</span></span></a><span
lang=EN-US> ) as a parameter whereas </span><span class=FuncName><span
lang=EN-US style='font-family:Verdana;'>swe_calc_ut()</span></span><span
lang=EN-US> expects </span><span class=FileName><span lang=EN-US
style='font-family:Verdana;'>Universal Time</span></span><span
lang=EN-US>. For common astrological calculations, you will only need </span><span
class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc_ut()</span></span><span lang=EN-US> and will not have to think
anymore about the conversion between Universal Time and Ephemeris Time.</span></p>
<p class=MsoBodyText><span class=FuncName><span lang=EN-US style='font-family:
Verdana;'>swe_calc_ut()</span></span><span lang=EN-US> and
</span><span class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc()</span></span><span lang=EN-US> compute
positions of planets, asteroids, lunar nodes and apogees. They are defined as
follows:</span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><a
name="_Hlk477319384"><span lang=EN-US>&nbsp;</span></a></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span lang=EN-US>int <a name="_Hlk477830210"></a><a
name="_Hlk477412409"><b>swe_calc_ut</b>
</a>( double </span><span
lang=EN-US style='color:blue'>tjd_ut</span><span lang=EN-US>, int </span><span lang=EN-US style='color:blue'>ipl</span><span
lang=EN-US>, int </span><span
lang=EN-US style='color:blue'>iflag</span><span lang=EN-US>, double* </span><span lang=EN-US style='color:blue'>xx</span><span
lang=EN-US>, char* </span><span
lang=EN-US style='color:blue'>serr</span><span lang=EN-US>),</span></p>
<p class=MsoBodyText><span lang=EN-US>where<a name="F_Ref401629455"></a></span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span
lang=EN-US>tjd_ut<75><74><EFBFBD><EFBFBD> =<a
href="#_Hlk477330118"><span style='font-size:10.0pt'>Julian day</span></a>,
Universal Time</span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span
lang=EN-US>ipl<70><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =body number</span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span
lang=EN-US>iflag<61><67><EFBFBD> =a 32 bit integer
containing bit flags that indicate what kind of computation is wanted</span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span
lang=EN-US>xx <20><><EFBFBD><EFBFBD><EFBFBD> =array of 6 doubles
for longitude, latitude, distance, speed in long., speed in lat., and speed in
dist.</span></p>
<p class=SourceText style='margin-left:40.5pt;text-indent:-31.5pt'><span
lang=EN-US>serr[256] =character string to return error messages in case of
error.</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>and</span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477320293"><b>swe_calc</b></a>(double
tjd_et, int ipl, int iflag, double *xx, char *serr),</span></p>
<p class=MsoNormal><span lang=EN-US>same but</span></p>
<p class=SourceText><span lang=EN-US>tjd_et<EFBFBD><EFBFBD><EFBFBD><EFBFBD> =<3D><><EFBFBD><EFBFBD> Julian
day, Ephemeris time,<2C> where tjd_et =
tjd_ut + swe_deltat(tjd_ut)</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>A detailed description of these
variables will be given in the following sections.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479391"><span lang=EN-US>2.2. </span></a><a name="_Hlk477831517"><span lang=EN-US>Error handling and return
values</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>On success, </span><span
class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc</span></span><span lang=EN-US> ( or </span><span
class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc_ut</span></span><span
lang=EN-US>)returns a 32-bit integer containing flag bits that indicate
what kind of computation has been done. This value may or may not be equal to</span><a name="_Hlk477831658"><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span></a><span
lang=EN-US>. If an option specified by</span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
lang=EN-US> cannot be fulfilled or makes no sense, </span><span class=FuncName><span
lang=EN-US style='font-family:Verdana;'>swe_calc</span></span><span
lang=EN-US> just does what can be done. E.g., if you specify that you want JPL
ephemeris, but</span><span class=FuncName><span lang=EN-US
style='font-family:Verdana;'>swe_calc</span></span><span lang=EN-US>cannot find the ephemeris file, it
tries to do the computation with any available ephemeris. This will be
indicated in the return value of </span><span class=FuncName><span lang=EN-US
style='font-family:Verdana;'>swe_calc</span></span><span
lang=EN-US>. So, to make sure that </span><span class=FuncName><span
lang=EN-US style='font-family:Verdana;'>swe_calc ()</span></span><span
lang=EN-US> did exactly what you had wanted, you may want to check whether or
not the return code </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>== iflag</span></span><span
lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>However, </span><span
class=FuncName><span lang=EN-US style='font-family:Verdana;'>swe_calc()</span></span><span lang=EN-US> might return an <a
name="_Hlk477831866"><b><span style='color:maroon'>fatal error</span></b></a><b><span
style='color:maroon'> code (&lt; 0)</span></b> and an error string in one of
the following cases:</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:Symbol'>&nbsp;</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>if an illegal <a href="#_Hlk477832010"><span
style='font-family:Verdana'>body number</span></a> has been specified</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>if a Julian day beyond the ephemeris
limits has been specified</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>if the length of the ephemeris file is
not correct (damaged file)</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>on read error, e.g. a file index
points to a position beyond file length ( data on file are corrupt )</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>if the copyright section in the
ephemeris file has been destroyed.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If any of these errors occurs,</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the return code of the function is -1,</span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the position and speed variables are
set to zero, </span></p>
<p class=Aufzhlungszeichent51 style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the type of error is indicated in the
error string </span><span class=VarName><span lang=EN-US style='font-size:12.0pt;
font-family:"Times New Roman"'>serr</span></span><b><span lang=EN-US>.</span></b></p>
<h3 style='margin-left:0cm;text-indent:0cm;page-break-before:always;'><a name="F_Ref401634330"></a><a name="_Toc354479392"><span lang=EN-US>2.3. Bodies ( </span></a><a
name="_Hlk477320729"><span lang=EN-US>int ipl </span></a><span
lang=EN-US>)</span></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To tell<b> swe_calc()</b>which
celestial body or factor should be computed, a fixed set of body numbers is
used. The <a name="_Hlk477832010">body number</a>s are defined in </span><span
class=FileName><span lang=EN-US style='font-family:Verdana;'>swephexp.h:</span></span></p>
<p class=SourceText><span lang=EN-US>/* planet
numbers for the ipl parameter in swe_calc() */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_NUT<55><54><EFBFBD><EFBFBD> -1<><31><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_SUN<55><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_MOON<4F><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_MERCURY<52><59><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_VENUS<55><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_MARS<52><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_JUPITER<45><52><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_SATURN<52><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_URANUS<55><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_NEPTUNE<4E><45><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_PLUTO<54><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 9<><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_MEAN_NODE<44><45><EFBFBD> <20><><EFBFBD><EFBFBD> 10<31><30><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_TRUE_NODE<44><45><EFBFBD> <20><><EFBFBD><EFBFBD> 11</span></p>
<p class=SourceText><span lang=IT>#define SE_MEAN_APOG<4F><47><EFBFBD> <20><><EFBFBD><EFBFBD> 12<31><32><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_OSCU_APOG<4F><47><EFBFBD> <20><><EFBFBD><EFBFBD> 13<31><33><EFBFBD> </span></p>
<p class=SourceText><span lang=IT>#define SE_EARTH<54><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 14 </span></p>
<p class=SourceText><span lang=IT>#define SE_CHIRON<4F><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 15 </span></p>
<p class=SourceText><span lang=IT>#define SE_PHOLUS<55><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16 </span></p>
<p class=SourceText><span lang=IT>#define SE_CERES<45><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 17 </span></p>
<p class=SourceText><span lang=IT>#define SE_PALLAS<41><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 18 </span></p>
<p class=SourceText><span lang=IT>#define SE_JUNO<4E><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 19</span></p>
<p class=SourceText><span lang=IT>#define SE_VESTA<54><41><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20</span></p>
<p class=SourceText><span lang=IT>#define SE_INTP_APOG<4F><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 21</span></p>
<p class=SourceText><span lang=IT>#define SE_INTP_PERG<52><47><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 22</span></p>
<p class=SourceText><span lang=IT>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define SE_NPLANETS<54><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 23</span></p>
<p class=SourceText><span lang=IT>#define SE_FICT_OFFSET<45> <20><><EFBFBD><EFBFBD> 40</span></p>
<p class=SourceText><span lang=IT>#define SE_NFICT_ELEM<45><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 15</span></p>
<p class=SourceText><span lang=IT>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/*
Hamburger or <a name="_Hlk477832209"></a><a name="_Hlk477832724">Uranian &quot;planets&quot; </a>*/</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define SE_CUPIDO<44><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 40</span></p>
<p class=SourceText><span lang=IT>#define SE_HADES<45><53><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 41</span></p>
<p class=SourceText><span lang=IT>#define SE_ZEUS<55><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 42</span></p>
<p class=SourceText><span lang=IT>#define SE_KRONOS<4F><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 43</span></p>
<p class=SourceText><span lang=IT>#define SE_APOLLON<4F><4E><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 44</span></p>
<p class=SourceText><span lang=IT>#define SE_ADMETOS<4F><53><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 45</span></p>
<p class=SourceText><span lang=IT>#define SE_VULKANUS<55><53><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 46</span></p>
<p class=SourceText><span lang=IT>#define SE_POSEIDON<4F><4E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 47</span></p>
<p class=SourceText><span lang=IT>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* other
fictitious bodies */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define SE_ISIS<49><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 48</span></p>
<p class=SourceText><span lang=IT>#define SE_NIBIRU<52><55><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 49</span></p>
<p class=SourceText><span lang=IT>#define SE_HARRINGTON<4F><4E><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 50</span></p>
<p class=SourceText><span lang=IT>#define SE_NEPTUNE_LEVERRIER <20><><EFBFBD><EFBFBD> 51</span></p>
<p class=SourceText><span lang=IT>#define SE_NEPTUNE_ADAMS<4D><53><EFBFBD> <20><><EFBFBD><EFBFBD> 52</span></p>
<p class=SourceText><span lang=IT>#define SE_PLUTO_LOWELL<4C><4C><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 53</span></p>
<p class=SourceText><span lang=IT>#define SE_PLUTO_PICKERING<4E><47> <20><><EFBFBD><EFBFBD> 54</span></p>
<p class=SourceText><span lang=IT>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_AST_OFFSET<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10000</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>&nbsp;</span></b></p>
<h4 style='text-indent:0cm'><a name="_Hlk477320798"></a><a name="_Toc354479393"><span lang=EN-US>Additional asteroids</span></a></h4>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Body numbers of other asteroids are above <span
style='color:navy'>SE_AST_OFFSET (=10000)</span> and have to be constructed as
follows:</span></p>
<p class=MsoNormal><span lang=EN-US style='color:navy'>ipl = SE_AST_OFFSET +
Minor_Planet_Catalogue_number;</span></p>
<p class=MsoNormal><span lang=EN-US>e.g. Eros :<3A> <span style='color:navy'>ipl = SE_AST_OFFSET +<2B> 433</span></span></p>
<p class=MsoNormal><span lang=EN-US>The names of the asteroids and their
catalogue numbers can be found in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>seasnam.txt. </span></span></p>
<p class=MsoNormal style='page-break-before:always'><span lang=EN-US>Examples are:</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>5<><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Astraea</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=PT-BR>6<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hebe<62><65><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=PT-BR>7<><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Iris<69><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=PT-BR>8<><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Flora</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=PT-BR>9<><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Metis</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'>10<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hygiea<65><61> </p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Urania<69><61> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>42<34><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Isis<69><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> not identical with
&quot;Isis-Transpluto&quot;</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>153<35><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hilda<64><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (has an own asteroid belt at 4 AU)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>227<32><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Philosophia<69><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>251<35><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Sophia<69><61> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>259<35><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Aletheia</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>275<37><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Sapientia<69><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>279<37><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Thule<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (asteroid close to Jupiter)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>375<37><35><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ursula<6C><61><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>433<33><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Eros<6F><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>763<36><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cupido<64><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> different from Witte's Cupido</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>944<34><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Hidalgo<67> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>1181<38><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Lilith<74><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (not identical with Dark Moon
'Lilith')</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=IT>1221<32><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Amor<6F><72><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=IT>1387<38><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Kama<6D><61><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=IT>1388<38><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Aphrodite<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>1862<36><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Apollo<6C><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (different from Witte's Apollon)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>3553<35><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Damocles<65><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> highly eccentric orbit betw. Mars
and Uranus</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>3753<35><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cruithne<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (&quot;second moon&quot; of earth)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>4341<34><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Poseidon<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Greek Neptune (different from
Witte's Poseidon)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>4464<36><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Vulcano<6E><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fire god (different from Witte's
Vulkanus and intramercurian Vulcan)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>5731<33><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Zeus<75><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Greek Jupiter (different from
Witte's Zeus)</span></p>
<p class=SourceText style='margin-left:27.0pt;text-indent:1.8pt;'><span
lang=EN-US>7066<36><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Nessus<75><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> third named Centaur (beween Saturn
and Pluto)</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There are two ephemeris files for
each asteroid (except the main asteroids), a long one and a short one:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>se09999.se1<65><31><EFBFBD><EFBFBD> long-term ephemeris of asteroid number
9999, 3000 BC <20> 3000 AD</span></p>
<p class=SourceText><span lang=EN-US>se09999s.se1<65><31><EFBFBD><EFBFBD> short ephemeris of asteroid number 9999,
1500 <20> 2100 AD</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>The larger file is about 10 times the
size of the short ephemeris. If the user does not want an ephemeris for the
time before 1500 he might prefer to work with the short files. If so, just copy
the files ending with </span><span class=FileName><span lang=DA
style='font-family:Verdana'><3E>s.se1<65></span></span><span lang=EN-US> to your hard
disk. </span><span class=FuncName><span lang=DA style='font-family:Verdana'>Swe_calc()</span></span><span lang=EN-US>tries the long one and on failure
automatically takes the short one.</span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>Asteroid ephemerides are looked for in the
subdirectories </span><span class=FileName><span lang=DA style='font-family:
Verdana'>ast0, ast1, ast2 .. ast9 etc</span></span><span lang=EN-US> of the
ephemeris directory and, if not found there, in the ephemeris directory itself.
Asteroids with numbers 0 <20> 999 are expected in directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>ast0</span></span><span
lang=EN-US>, those with numbers 1000 <20> 1999 in directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>ast1</span></span><span
lang=EN-US> etc. </span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyTextIndent style='margin-left:0cm'><span lang=EN-US
style='color:black'>Note that </span><span class=Inverse><span lang=EN-US><EFBFBD>not all <a name="_Hlk477863570">asteroids</a>
</span></span><span class=FileName><span lang=DA style='font-family:Verdana;
color:black'><3E>can be computed</span></span><span
lang=EN-US style='color:black'> for the whole period of Swiss Ephemeris. The
orbits of some of </span><span lang=EN-US>them are extremely sensitive to
perturbations by major planets. E.g. <a name="_Hlk478116834"><b>CHIRON</b></a>,
cannot be computed for the time before <b>650 AD</b> and after <b>4650 AD</b>
because of close encounters with Saturn. Outside this time range, Swiss
Ephemeris returns the error code, an error message, and a position value 0. Be
aware, that the user will <b>have to handle</b>this case in his
program. Computing Chiron transits for Jesus or Alexander the Great <span
class=Inverse>will not work</span></span><span class=FileName><b><span lang=DA
style='font-family:Verdana;color:maroon'>.</span></b></span></p>
<p class=MsoBodyTextIndent style='margin-left:0cm'><span lang=EN-US>The same is
true for Pholus before <b>3850 BC</b>, and for many other asteroids, as e.g.
1862 Apollo. He becomes chaotic before the year <b>1870 AD</b>, when he
approaches Venus very closely. Swiss Ephemeris does not provide positions of
Apollo for earlier centuries !</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>Note on asteroid names</span></b></p>
<p class=Textkrper-Einzug><span lang=EN-US>Asteroid names are listed in the
file </span><span class=FileName><span lang=DA style='font-family:Verdana'>seasnam.txt</span></span><span
lang=EN-US>. This file is in the ephemeris directory.</span></p>
<p class=Textkrper-Einzug style='page-break-before:always'><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Hlk477320919"></a><a name="_Toc354479394"><span lang=EN-US>Fictitious planets</span></a></h4>
<p class=MsoNormal><b><span lang=EN-US>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US>Fictitious planets have numbers greater
than or equal to 40. The user can define his or her own fictitious planets. The
orbital elements of these planets must be written into the file </span><span
class=FileName><span lang=DA style='font-family:Verdana'>seorbel.txt</span></span><span
lang=EN-US>. The function </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>looks for the file </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>seorbel.txt</span></span><span lang=EN-US> in the
ephemeris path set by </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_set_ephe_path()</span></span><span lang=EN-US>.
If no orbital elements file is found, </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>uses the built-in orbital elements of the above mentioned <a
href="#_Hlk477832724"><span style='font-family:Verdana'>Uranian planets </span></a>and
some other bodies. The planet number of a fictitious planet is defined as </span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>ipl = SE_FICT_OFFSET_1 +
number_of_elements_set;</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>e.g. for Kronos: <span
style='color:navy'>ipl = 39 + 4 = 43</span>.</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The file </span><span class=FileName><span
lang=DA style='font-family:Verdana'>seorbel.txt</span></span><span lang=EN-US>
has the following structure:</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<div style='border:solid black .5pt;padding:1.0pt 1.0pt 1.0pt 1.0pt'>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Orbital elements of fictitious planets</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 27 Jan. 2000</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # This file is part of the Swiss Ephemeris, from Version 1.60
on.</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Warning! These planets do not exist!</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # The user can add his or her own elements.</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 960 is the maximum number of fictitious planets.</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # The elements order is as follows:</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 1. epoch of elements (Julian day)</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 2. equinox (Julian day or &quot;J1900&quot; or
&quot;B1950&quot; or &quot;J2000&quot; or <20>JDATE<54>)</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 3. mean anomaly at epoch</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 4. semi-axis</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 5. eccentricity</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 6. argument of perihelion (ang. distance of perihelion from
node)</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 7. ascending node</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 8. inclination</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 9. name of planet</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # use '#' for comments</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # to compute a body with swe_calc(), use planet number </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # ipl = SE_FICT_OFFSET_1 + number_of_elements_set,</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # e.g. number of Kronos is ipl = 39 + 4 = 43</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> #</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Witte/Sieggruen planets, refined by James Neely</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=ES
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 163.7409, 40.99837, 0.00460, 171.4333, 129.8325, 1.0833, Cupido<64><6F> # 1</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=NL
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900,<2C> 27.6496, 50.66744, 0.00245,
148.1796, 161.3339, 1.0500, Hades<65><73><EFBFBD> # 2</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=NL
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 165.1232, 59.21436, 0.00120, 299.0440,<2C><>
0.0000, 0.0000, Zeus<75><73><EFBFBD><EFBFBD> # 3</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=ES
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 169.0193, 64.81960, 0.00305, 208.8801,<2C><>
0.0000, 0.0000, Kronos<6F><73> # 4</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=ES
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 138.0533, 70.29949, 0.00000, <20><>0.0000,<2C><> 0.0000, 0.0000,
Apollon<EFBFBD> # 5</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=PT-BR
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 351.3350, 73.62765, 0.00000,<2C><>
0.0000,<2C><> 0.0000, 0.0000,
Admetos<EFBFBD> # 6</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=FI
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900,<2C> 55.8983, 77.25568, 0.00000,<2C><> 0.0000,<2C><>
0.0000, 0.0000, Vulcanus # 7</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=FI
style='font-size:9.0pt;font-family:"Lucida Console";'>J1900,
J1900, 165.5163, 83.66907, 0.00000,<2C><> 0.0000,<2C><> 0.0000, 0.0000, Poseidon # 8</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=FI
style='font-size:9.0pt;font-family:"Lucida Console";'><3E><><EFBFBD> </span><span lang=EN-US style='font-size:
9.0pt;font-family:"Lucida Console"'>#</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Isis-Transpluto; elements from &quot;Die Sterne&quot; 3/1952,
p. 70ff. </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Strubell does not give an equinox. 1945 is taken in order to </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # reproduce the as best as ASTRON ephemeris. (This is a strange
</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # choice, though.)</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # The epoch according to Strubell is 1772.76. </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # 1772 is a leap year!</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # The fraction is counted from 1 Jan. 1772</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>2368547.66, 2431456.5,
0.0, 77.775, 0.3, 0.7, 0, 0, Isis-Transpluto<74><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> # 9</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Nibiru, elements from Christian Woeltge, Hannover</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>1856113.380954,
1856113.380954, 0.0, 234.8921, 0.981092, 103.966, -44.567, 158.708, Nibiru # 10</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # Harrington, elements from Astronomical Journal 96(4), Oct.
1988 </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>2374696.5, J2000, 0.0,
101.2, 0.411, 208.5, 275.4, 32.4, Harrington<6F><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> # 11</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'><3E><><EFBFBD> # according to W.G. Hoyt, &quot;Planets X and Pluto&quot;,
Tucson 1980, p. 63 </span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>2395662.5, 2395662.5,
34.05, 36.15, 0.10761, 284.75, 0, 0, Leverrier (Neptune)<29> # 12</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>2395662.5, 2395662.5,
24.28, 37.25, 0.12062, 299.11, 0, 0, Adams (Neptune)<29><><EFBFBD> <20><># 13</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>2425977.5, 2425977.5, 281,
43.0, 0.202, 204.9, 0, 0, Lowell (Pluto)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> # 14</span></p>
<p class=MsoPlainText style='border:none;
padding:0cm;'><span style='font-size:
9.0pt;font-family:"Lucida Console";'>2425977.5,
2425977.5, 48.95, 55.1, 0.31, 280.1, 100, 15, Pickering (Pluto)<29><><EFBFBD><EFBFBD><EFBFBD> # 15</span></p>
<p class=MsoNormal style='border:none;
padding:0cm;'><span style='font-size:
9.0pt;font-family:"Lucida Console";'>J1900,JDATE,
252.8987988 + 707550.7341 * T, 0.13744, 0.019, 322.212069+1670.056*T,
47.787931-1670.056*T, 7.5, Vulcan # 16</span></p>
<p class=MsoNormal style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'># Selena/White Moon</span></p>
<p class=MsoNormal style='border:none;
padding:0cm;'><span lang=EN-US
style='font-size:9.0pt;font-family:"Lucida Console"'>J2000,JDATE, 242.2205555,
0.05279142865925, 0.0, 0.0, 0.0, 0.0, Selena/White Moon, geo # 17</span></p>
</div>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>All orbital
elements except epoch and equinox may have T<>
terms, where</span></p>
<p class=MsoNormal><span lang=DA>T = (tjd <20> epoch)
/ 36525. </span></p>
<p class=MsoNormal><span lang=DA>(See, e.g.,
Vulcan, the second last elements set (not the <20>Uranian<61> Vulcanus but the
intramercurian hypothetical planet Vulcan).) <20>T * T<>, <20>T2<54>, <20>T3<54> are also
allowed. </span></p>
<p class=MsoNormal><span lang=DA>The equinox can
either be entered as a Julian day or as <20>J1900<30> or <20>B1950<35> or <20>J2000<30> or, if
the equinox of date is required, as <20>JDATE<54>. If you use T terms, note that
precession has to be taken into account with JDATE, whereas it has to be
neglected with fixed equinoxes. </span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>No T term is
required with the mean anomaly, i.e. for the speed of the body, because our
software can compute it from semi-axis and gravity. However, a mean anomaly T
term had to be added with Vulcan because its speed is not in agreement with the
laws of physics. In such cases, the software takes the speed given in the elements
and does not compute it internally.</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>From Version 1.62
on, the software also accepts orbital elements for fictitious bodies that move
about the earth. As an example, study the last elements set in the excerpt of
seorbel.txt above. After the name of the body, <20>, geo<65> has to be added.</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoToc1 style='margin:0cm;margin-bottom:.0001pt;page-break-before:
always'><span lang=EN-US style='font-family:Arial'>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Hlk477320958"></a><a name="_Toc354479395"><span lang=EN-US>Obliquity and nutation</span></a></h4>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>A <a name="_Hlk477832844">special body
number SE_ECL_NUT</a> is provided to compute the obliquity of the ecliptic and
the nutation. Of course nutation is already added internally to the planetary
coordinates by </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc()</span></span><span lang=EN-US> but sometimes it will be
needed as a separate value. </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=FR>iflgret = <b>swe_calc</b>(tjd_et,
SE_ECL_NUT, 0, x, serr);</span></p>
<p class=SourceText><span lang=FR>&nbsp;</span></p>
<p class=SourceText><i><span lang=EN-US>x</span></i><span lang=EN-US> is an
array of 6 doubles as usual. They will be filled as follows:</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>x[0] = true obliqutiy of the Ecliptic
(includes nutation)</span></p>
<p class=SourceText><span lang=EN-US>x[1] = mean obliquity of the Ecliptic</span></p>
<p class=SourceText><span lang=EN-US>x[2] = nutation in longitude</span></p>
<p class=SourceText><span lang=EN-US>x[3] = nutation in obliquity</span></p>
<p class=SourceText><span lang=EN-US>x[4] = x[5] = 0</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479396"><span lang=EN-US>2.4. Options chosen by flag bits</span></a><span lang=EN-US style='font-weight:normal'>
(long<6E> iflag)</span></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479397"><span lang=EN-US>2.4.1. The
use of </span></a><a name="_Hlk477321208"><span
lang=EN-US>flag bits</span></a></h4>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If no bits are set, i.e. if<69> </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>iflag == 0</span></span><span
lang=EN-US>, </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> computes what common astrological ephemerides (as available in book
shops) supply, i.e. an <a href="#_Hlk477833007"><span style='font-family:Verdana'>apparent</span></a><EFBFBD> body position in <b>geocentric</b> ecliptic
polar coordinates ( longitude, latitude, and distance) relative to the true<a
href="#_Hlk477833149"><span style='font-family:Verdana'>equinox of the date</span></a>.
</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If the speed of the body is
required, set </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>iflag = SEFLG_SPEED</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For mathematical points as the mean
lunar node and the mean apogee, there is no apparent position. </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>Swe_calc()</span></span><span lang=EN-US>returns true positions for these points.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If you need another kind of computation,
use the flags explained in the following paragraphs (c.f.</span><span
class=FileName><span lang=DA style='font-family:Verdana'> swephexp.h</span></span><span
lang=EN-US>). Their names begin with <20></span><span lang=EN-US style='font-size:
9.0pt;font-family:Verdana;color:navy'>SEFLG_</span><span lang=EN-US><EFBFBD>. To
combine them, you have to concatenate them (inclusive-or) as in the following
example:</span></p>
<p class=SourceText><span lang=DA>iflag =
SEFLG_SPEED | SEFLG_TRUEPOS;<3B> (or: </span><span
lang=EN-US>iflag = SEFLG_SPEED + SEFLG_TRUEPOS;</span><span lang=DA>) // C</span></p>
<p class=SourceText><span lang=DA>iflag =
SEFLG_SPEED <b>or</b> SEFLG_TRUEPOS;(or: </span><span lang=EN-US>iflag =
SEFLG_SPEED + SEFLG_TRUEPOS;</span><span lang=DA>)
// Pascal</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>With this value of</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
lang=EN-US>, </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> will compute true positions ( i.e. not accounted for light-time )
with speed.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The flag bits, which are defined in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span><span
lang=EN-US>, are:</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_JPLEPH<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1L<31><4C><EFBFBD><EFBFBD> // use JPL ephemeris
</span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_SWIEPH<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2L<32><4C><EFBFBD><EFBFBD> // use SWISSEPH
ephemeris, default</span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_MOSEPH<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4L<34><4C><EFBFBD><EFBFBD> // use Moshier
ephemeris </span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_HELCTR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8L<38><4C><EFBFBD><EFBFBD> //
return heliocentric position </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_TRUEPOS <20><><EFBFBD><EFBFBD> 16L<36><4C><EFBFBD><EFBFBD> // return true positions, not apparent </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_J2000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 32L<32><4C><EFBFBD><EFBFBD> //
no precession, i.e. give J2000 equinox </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_NONUT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 64L<34><4C><EFBFBD><EFBFBD> //
no nutation, i.e. mean equinox of date </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_SPEED3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 128L<38><4C><EFBFBD><EFBFBD> //
speed from 3 positions (do not use it, SEFLG_SPEED is</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> //
faster and preciser.) </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_SPEED<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 256L<36><4C><EFBFBD><EFBFBD> //
high precision speed (analyt. comp.)</span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_NOGDEFL <20><><EFBFBD><EFBFBD> 512L<32><4C><EFBFBD><EFBFBD> // turn off gravitational deflection </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_NOABERR <20><><EFBFBD><EFBFBD> 1024L<34><4C><EFBFBD><EFBFBD> // turn off 'annual' aberration of light </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_EQUATORIAL<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2048L<38><4C><EFBFBD><EFBFBD> // equatorial positions are wanted </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_XYZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4096L<36><4C><EFBFBD><EFBFBD> //
cartesian, not polar, coordinates </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_RADIANS<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8192L<32><4C><EFBFBD><EFBFBD> //
coordinates in radians, not degrees </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_BARYCTR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16384L<34><4C><EFBFBD><EFBFBD> //
barycentric positions </span></p>
<p class=SourceText><span lang=EN-US>#define
SEFLG_TOPOCTR <20><><EFBFBD><EFBFBD> (32*1024L)<29><><EFBFBD><EFBFBD> // topocentric positions </span></p>
<p class=SourceText><span lang=DA>#define SEFLG_SIDEREAL<41><4C><EFBFBD><EFBFBD> (64*1024L)<29><><EFBFBD><EFBFBD> // sidereal
positions </span></p>
<p class=SourceText><span lang=DA>#define SEFLG_ICRS<52><53><EFBFBD><EFBFBD> (128*1024L)<29><><EFBFBD><EFBFBD> // ICRS (DE406 reference frame) </span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479398"><span lang=EN-US>2.4.2. </span></a><a
name="_Hlk477321234"><span lang=EN-US>Ephemeris
flags</span></a></h4>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The flags to choose an ephemeris
are: (s. </span><span class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span><span
lang=EN-US>)</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>SEFLG_JPLEPH<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* use JPL ephemeris */</span></p>
<p class=SourceText><span lang=EN-US>SEFLG_SWIEPH<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* use Swiss Ephemeris */</span></p>
<p class=SourceText><span lang=EN-US>SEFLG_MOSEPH<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* use Moshier ephemeris */</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If none of this flags is specified, </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> tries to compute the default ephemeris. The default ephemeris is
defined in</span><span class=FileName><span lang=DA style='font-family:Verdana'>
swephexp.h:</span></span></p>
<p class=SourceText>#define
SEFLG_DEFAULTEPH SEFLG_SWIEPH</p>
<p class=Textkrper-Einzug><span lang=EN-US>In this case the default ephemeris
is Swiss Ephemeris. If you have <a name="_Hlk477833574">not specified</a> an
ephemeris in</span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
lang=EN-US>, </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> tries to compute a Swiss Ephemeris position. If it does not find
the required Swiss Ephemeris file either, it computes a Moshier position. </span></p>
<h4 style='text-indent:0cm'><a name="_Hlk477321274"></a><a name="_Toc354479399"><span lang=EN-US>2.4.3. Speed flag</span></a></h4>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>Swe_calc()</span></span><span lang=EN-US>does
not compute speed if you do not add the speed flag SEFLG_SPEED. E.g. </span></p>
<p class=SourceText><span lang=EN-US>iflag |= SEFLG_SPEED; </span></p>
<p class=MsoNormal><span lang=EN-US>The computation of speed is usually cheap,
so you may set this bit by default even if you do not need the speed.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479400"><span lang=EN-US>2.4.4. </span></a><a
name="_Hlk477321265"><span lang=EN-US>Coordinate
systems</span></a><span
lang=EN-US>, degrees and radians</span></h4>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>SEFLG_EQUATORIAL<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> returns
<a name="_Hlk477833734">equatorial positions</a>: rectascension and declination.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>SEFLG_XYZ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> returns <a name="_Hlk477833826">x,
y, z </a>coordinates instead of longitude, latitude, and distance.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>SEFLG_RADIANS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> returns
position in <a name="_Hlk477833841">radians, not degrees</a>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>E.g. to compute rectascension and
declination, write:</span></p>
<p class=SourceText><span lang=EN-US>iflag = SEFLG_SWIEPH | SEFLG_SPEED |
SEFLG_EQUATORIAL;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479401"><span lang=EN-US>2.4.5.
Specialties (going beyond common interest)</span></a></h4>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479402"><span lang=EN-US>a. </span></a><a name="_Hlk477321411"><span lang=EN-US>True or apparent positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US>Common ephemerides supply <a
name="_Hlk477833007">apparent</a> geocentric positions. Since the journey of
the light from a planet to the earth takes some time, the planets are never
seen where they actually are, but where they were a few minutes or hours
before. Astrology uses to work with the positions <b>we see</b>. ( More
precisely: with the positions we would see, if we stood at the center of the
earth and could see the sky. Actually, the geographical position of the
observer could be of importance as well and <a href="#_Hlk477833975"><span
style='font-family:Verdana'>topocentric positions</span></a>could be
computed, but this is usually not taken into account in astrology.). The
geocentric position for the earth (SE_EARTH) is returned as zero.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To compute the <a
name="_Hlk477834072"><b>true</b>geometrical position</a> of a planet,
disregarding light-time, you have to add the flag </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>SEFLG_TRUEPOS.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479403"><span lang=EN-US>b. </span></a><a name="_Hlk477321643"><span lang=EN-US>Topocentric positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US>To compute <a name="_Hlk477833975">topocentric
positions</a>, i.e. positions referred to the place of the observer (the birth
place) rather than to the center of the earth, do as follows:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>call </span><b><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>swe_set_topo</span></b><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>(geo_lon,
geo_lat, altitude_above_sea)</span><span lang=EN-US><EFBFBD> (The longitude and latitude must be in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>degrees</span></span><span
lang=EN-US>, the altitude in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>meters</span></span><span lang=EN-US>.)</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:Symbol;
font-weight:normal'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>add the flag </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>SEFLG_TOPOCTR</span><span
lang=EN-US> to</span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-size:9.0pt;font-family:Symbol;
color:navy'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>call </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>swe_calc(...)</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479404"><span lang=EN-US>c. </span></a><a name="_Hlk477321658"><span lang=EN-US>Heliocentric positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US>To compute a heliocentric position,
add </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>SEFLG_HELCTR.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>A heliocentric position can be
computed for all planets including the moon. For the </span><span
class=FileName><span lang=DA style='font-family:Verdana'>sun, lunar nodes</span></span><span
lang=EN-US> and </span><span class=FileName><span lang=DA style='font-family:
Verdana'>lunar apogees</span></span><span lang=EN-US> the coordinates are
returned as zero; <b>no error message appears</b>.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479405"><span lang=EN-US>d. </span></a><a name="_Hlk477321673"><span lang=EN-US>Barycentric positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>SEFLG_BARYCTR</span><span lang=EN-US> yields coordinates as
referred to the solar system barycenter. However, this option is not completely
implemented.<2E> It was used for program
tests during development.<2E> It works only
with the JPL and the Swiss Ephemeris, <b>not with the Moshier</b> ephemeris;
and <b>only with physical bodies</b>, but not with the nodes and the apogees.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Moreover, the barycentric Sun of
Swiss Ephemeris has <20>only<6C> a precision of 0.1<EFBFBD>. Higher accuracy would have
taken a lot of storage, on the other hand it is not needed for precise
geocentric and heliocentric positions. For more precise barycentric positions
the JPL ephemeris file should be used.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>A barycentric position can be
computed </span><span class=FileName><span lang=DA style='font-family:Verdana'>for
all planets</span></span><span lang=EN-US> including the sun and moon. For the
lunar nodes and lunar apogees the coordinates are returned as zero; no error
message appears.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479406"><span lang=EN-US>e. </span></a><a name="_Hlk477321696"><span lang=EN-US>Astrometric positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US>For astrometric positions, which are
sometimes given in the Astronomical Almanac, the light-time correction is
computed, but annual aberration and the light-deflection by the sun neglected.
This can be done with SEFLG_NOABERR and SEFLG_NOGDEFL. For positions related to
the mean equinox of 2000, you must set SEFLG_J2000 and SEFLG_NONUT, as well.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479407"><span lang=EN-US>f. </span></a><a name="_Hlk477321511"><span lang=EN-US>True or mean </span></a><a
name="_Hlk477833149"><span lang=EN-US>equinox of date</span></a></h5>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>Swe_calc()</span></span><span lang=EN-US> usually computes the
positions as referred to the true equinox of the date ( i.e. with nutation ).
If you want the mean equinox, you can turn nutation off, using the flag bit
SEFLG_NONUT.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479408"><span lang=EN-US>g. </span></a><a name="_Hlk477321486"><span lang=EN-US>J2000 positions</span></a><span lang=EN-US> and positions referred to
other equinoxes</span></h5>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>Swe_calc()</span></span><span lang=EN-US> usually computes the
positions as referred to the equinox of date. SEFLG_J2000 yields data referred
to the equinox J2000. For positions referred to other equinoxes, SEFLG_SIDEREAL
has to be set and the equinox specified by </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US>. For more information, read the description of this function.</span></p>
<h5 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479409"><span lang=EN-US>h. </span></a><a name="_Hlk477321473"><span lang=EN-US>Sidereal positions</span></a></h5>
<p class=Textkrper-Einzug><span lang=EN-US>To compute sidereal positions, set
bit SEFLG_SIDEREAL and use the function </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US> in order to define the </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha</span></span><span
lang=EN-US> you want. For more information, read the description of this
function.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479410"><span lang=EN-US>2.5. </span></a><a name="_Hlk477325102"><span lang=EN-US>Position and Speed</span></a><span lang=EN-US style='font-weight:normal'>(double
xx[6])</span></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc()</span></span><span lang=EN-US>returns
the coordinates of position and velocity in the following order:</span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='margin-left:-.25pt;
border-collapse:collapse;'>
<tr>
<td width=271 valign=top style='width:203.4pt;border:solid black .5pt;
border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>Ecliptic position</span></b></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>Equatorial position ( </span></b><span lang=EN-US>SEFLG_EQUATORIAL<b>
)</b></span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>Longitude</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>Rectascension</span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>Latitude</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>Declination</span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>Distance in AU</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=FR>distance in AU</span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
longitude (deg/day)</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
rectascension (deg/day)</span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
latitude (deg/day)</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
declination (deg/day)</span></p>
</td>
</tr>
<tr>
<td width=271 valign=top style='width:203.4pt;border-top:none;border-left:
solid black .5pt;border-bottom:solid black .5pt;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
distance (AU/day)</span></p>
</td>
<td width=355 valign=top style='width:266.0pt;border:solid black .5pt;
border-top:none;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='layout-grid-mode:char'><span lang=EN-US>Speed in
distance (AU/day)</span></p>
</td>
</tr>
</table>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If you need <a name="_Hlk477324768">rectangular
coordinates </a>( SEFLG_XYZ ), </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc()</span></span><span lang=EN-US> returns </span><span
class=FileName><span lang=DA style='font-family:Verdana'>x, y, z, dx, dy, dz</span></span><span
lang=EN-US> in </span><span class=FileName><span lang=DA style='font-family:
Verdana'>AU</span></span><span lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Once you have computed a planet,
e.g., in ecliptic coordinates, its equatorial position or its rectangular
coordinates are available, too.<2E> You can
get them very cheaply ( little CPU time used ), calling again </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span lang=EN-US>with the same parameters, but adding
SEFLG_EQUATORIAL or SEFLG_XYZ to</span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'> iflag</span></span><span
lang=EN-US>.</span><span class=FuncName><span lang=DA style='font-family:Verdana'>
swe_calc()</span></span><span lang=EN-US> will not compute the body again, just
return the data specified from internal storage.</span></p>
<p class=MsoNormal><a name="OLE_LINK1"></a><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479411"><span
lang=EN-US>3. The function swe_get_planet_name()</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>This function allows to <a
name="_Hlk477834622">find a planetary or asteroid name</a>, when the planet
number is given. The function definition is </span></p>
<p class=SourceText><span lang=EN-US>char*<a name="_Hlk477324852"> <b>swe_get_planet_name</b></a>(int
ipl, char *spname); </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If an asteroid name is wanted, the
function does the following:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The name is first looked for in the
asteroid file. </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Because many asteroids, especially the
ones with high catalogue numbers, have no names yet (or have only a preliminary
designation like 1968 HB), and because the Minor Planet Center of the IAU add
new names quite often, it happens that there is no name in the asteroid file
although the asteroid has already been given a name. For this, we have the file
</span><span class=FileName><span lang=DA style='font-family:Verdana'>seasnam.txt</span></span><span
lang=EN-US>, a file that contains a list of all named asteroid and is usually
more up to date. If </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc()</span></span><span lang=EN-US> finds a preliminary
designation, it looks for a name in this file. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The file </span><span
class=FileName><span lang=DA style='font-family:Verdana'>seasnam.txt</span></span><span
lang=EN-US> can be updated by the user. To do this, download the names list
from the Minor Planet Center <a
href="http://cfa-www.harvard.edu/iau/lists/MPNames.html"><span
style='font-family:Verdana'>http://cfa-www.harvard.edu/iau/lists/MPNames.html</span></a>,
rename it as </span><span class=FileName><span lang=DA style='font-family:Verdana'>seasnam.txt</span></span><span
lang=EN-US> and move it into your ephemeris directory.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The file </span><span
class=FileName><span lang=DA style='font-family:Verdana'>seasnam.txt</span></span><span
lang=EN-US> need not be ordered in any way. There must be one asteroid per
line, first its catalogue number, then its name. The asteroid number may or may
not be in brackets.</span></p>
<p class=Textkrper-Einzug style='page-break-before:always'><span lang=EN-US>Example:</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>(3192) A'Hearn</span></p>
<p class=SourceText><span lang=EN-US>(3654) AAS</span></p>
<p class=SourceText><span lang=EN-US>(8721) AMOS</span></p>
<p class=SourceText><span lang=NL>(3568) ASCII</span></p>
<p class=SourceText><span lang=NL>(2848) ASP</span></p>
<p class=SourceText><span lang=NL>(677) Aaltje</span></p>
<p class=SourceText><span lang=NL><EFBFBD> ...</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479412"><span
lang=EN-US>4. Fixed stars functions</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479413"><span lang=EN-US>4.1 swe_fixstar_ut</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar_ut()</span></span><span
lang=EN-US> was introduced with Swisseph <b>version 1.60</b>. It does exactly
the same as </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar()</span></span><span
lang=EN-US> except that it expects Universal Time rather than Ephemeris time as
an input value. (cf. </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc_ut()</span></span><span lang=EN-US> and </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The functions </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar_ut()</span></span><span
lang=EN-US> and </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_fixstar()</span></span><span
lang=EN-US>computes fixed stars. They are defined as follows:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>long <a name="_Hlk477325162"><b>swe_fixstar_ut</b></a>(char*
</span><span lang=EN-US style='color:blue'>star</span><span lang=EN-US>, double
</span><span lang=EN-US style='color:blue'>tjd_ut</span><span lang=EN-US>, long
</span><span lang=EN-US style='color:blue'>iflag</span><span lang=EN-US>,
double* </span><span lang=EN-US style='color:blue'>xx</span><span lang=EN-US>,
char* </span><span lang=EN-US style='color:blue'>serr</span><span lang=EN-US>);</span></p>
<p class=MsoBodyText><span lang=EN-US>where</span></p>
<p class=SourceText style='margin-left:4.5pt;text-indent:0cm;'><span
lang=EN-US>star<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =name of
fixed star to be searched, returned name of found star</span></p>
<p class=SourceText style='margin-left:4.5pt;text-indent:0cm;'><span
lang=EN-US>tjd_ut<75><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =Julian day
in Universal Time</span></p>
<p class=SourceText style='margin-left:4.5pt;text-indent:0cm;'><span
lang=EN-US>iflag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =an integer
containing several flags that indicate what <20><><EFBFBD><EFBFBD> kind
of computation is wanted</span></p>
<p class=SourceText style='margin-left:4.5pt;text-indent:0cm;'><span
lang=EN-US>xx<78><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =array of 6
doubles for longitude, latitude, distance, speed in long., speed in lat., and
speed in dist.</span></p>
<p class=SourceText style='margin-left:4.5pt;text-indent:0cm;'><span
lang=EN-US>serr[256] =character string to contain error messages in case of
error.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD>For more info, see below under 4.2.
swe_fixstar()</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479414"><span lang=EN-US>4.2 swe_fixstar()</span></a></h3>
<p class=SourceText><span lang=EN-US>long <a name="_Hlk477325176"><b>swe_fixstar</b></a>(char
*</span><span lang=EN-US style='color:blue'>star</span><span lang=EN-US>,
double </span><span lang=EN-US style='color:blue'>tjd_et</span><span
lang=EN-US>, long </span><span lang=EN-US style='color:blue'>iflag</span><span
lang=EN-US>, double* </span><span lang=EN-US style='color:blue'>xx</span><span
lang=EN-US>, char* </span><span lang=EN-US style='color:blue'>serr</span><span
lang=EN-US>);</span></p>
<p class=SourceText><span lang=EN-US>same, but<75>
tjd_et= Julian day in Ephemeris Time</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The<EFBFBD>
parameter </span><a name="_Hlk477835149"><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>star</span></span></a><span
lang=EN-US> must provide for at least 41 characters for the returned star name
(= 2 x SE_MAX_STNAME + 1, where SE_MAX_STNAME is defined in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span><span
lang=EN-US>). If a star is found, its name is returned in this field in the
format<br>
</span><span class=FileName><span lang=DA style='font-family:Verdana'>traditional_name,
nomenclature_name</span></span><span lang=DA>e.g. </span><span class=FileName><span lang=DA
style='font-family:Verdana'>&quot;Aldebaran,alTau&quot;</span></span><span
lang=DA>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function has three modes to <a
name="_Hlk477835264">search for a star</a> in the file</span><span class=FileName><span lang=DA
style='font-family:Verdana'>fixstars.cat</span></span><span lang=EN-US
style='font-family:Verdana'>:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>star</span></span><span lang=EN-US>
contains a positive number ( in ASCII string format, e.g.<span
style='color:navy'> &quot;234&quot;</span>): The 234-</span><span lang=EN-US
style='font-size:9.0pt'>th</span><span lang=EN-US> non-comment line in the file
</span><span class=FileName><span lang=DA style='font-family:Verdana'>fixstars.cat</span></span><span
lang=EN-US> is used. Comment lines begin with # and are ignored.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>star</span></span><span
lang=EN-US>contains a traditional name: the first star in the file</span><span
class=FileName><span lang=DA style='font-family:Verdana'> fixstars.cat</span></span><span
lang=EN-US> is used whose traditional name fits the given name. All names are
mapped to lower case before comparison. If </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>star</span></span><span
lang=EN-US> has </span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>n</span></span><span lang=EN-US>
characters, only the first </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>n</span></span><span
lang=EN-US> characters of the traditional name field are compared. If a comma
appears after a non-zero-length traditional name, the traditional name is cut
off at the comma before the search. This allows the reuse of the returned star
name from a previous call in the next call.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>star</span></span><span
lang=EN-US>begins with a comma, followed by a nomenclature name, e.g. <span
style='color:navy'>&quot;,alTau&quot;</span>: the star with this name in the
nomenclature field ( the second field ) is returned. Letter case is observed in
the comparison for nomenclature names. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For correct spelling of nomenclature
names, see file</span><span class=FileName><span lang=DA style='font-family:
Verdana'> fixstars.cat</span></span><span lang=EN-US>. Nomenclature names are
usually composed of a Greek letter and the name of a star constellation. The
Greek letters were originally used to write numbers, therefore to number the
stars of the constellation. The abbreviated nomenclature names we use in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>fixstars.cat</span></span><span
lang=EN-US> are constructed from two lowercase letters for the Greek letter
(e.g. </span><span class=FileName><span lang=DA style='font-family:Verdana'><EFBFBD>al<EFBFBD></span></span><span
lang=EN-US> for </span><span class=FileName><span lang=DA style='font-family:
Verdana'><3E>alpha<68></span></span><span lang=EN-US>) and three letters for the
constellation (e.g. </span><span class=FileName><span lang=DA style='font-family:
Verdana'><3E>Tau<61></span></span><span lang=EN-US> for </span><span class=FileName><span
lang=DA style='font-family:Verdana'><3E>Tauri<72></span></span><span lang=EN-US>).</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function and the DLL should
survive damaged </span><span class=FileName><span lang=DA style='font-family:
Verdana'>fixstars.cat</span></span><span lang=EN-US> files which contain
illegal data and star names exceeding the accepted length. Such fields are cut
to acceptable length.</span></p>
<p class=MsoBodyText><span lang=EN-US>There are two special entries in the file
</span><span class=FileName><span lang=DA style='font-family:Verdana'>fixstars.cat:</span></span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>an entry for the Galactic Center,
named </span><span class=FileName><span lang=DA style='font-family:Verdana'>&quot;Gal.
Center&quot;</span></span><span lang=EN-US> with one blank.</span></p>
<p class=MsoBodyText style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>a star named </span><span
class=FileName><span lang=DA style='font-family:Verdana'>&quot;AA_page_B40&quot;</span></span><span
lang=EN-US> which is the star calculation sample of Astronomical Almanac<61> (our bible of the last two years), page B40.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>You may edit the star catalogue and
move the stars you prefer to the top of the file. This will increase the speed
of your computations. The search mode is linear through the whole star file for
each call of </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar()</span></span><span
lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>As for the explanation of the other
parameters, see </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc().</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Barycentric positions are not
implemented. The difference between geocentric and heliocentric fix star
position is noticeable and arises from parallax and gravitational deflection. </span></p>
<p class=Textkrper-Einzug><span class=Inverse><span lang=EN-US>Attention:</span></span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar()</span></span><b><span lang=EN-US style='color:maroon'>does
not compute <a name="_Hlk477863706">speeds</a></span></b><span
lang=EN-US>of the fixed stars</span><span lang=EN-US>. If you need them,
you have to compute them on your own, calling </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_fixstar()</span></span><span lang=EN-US>for a second ( and third ) time.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479415"><span lang=EN-US>4.3 swe_fixstar_mag()</span></a></h3>
<p class=SourceText><span lang=EN-US>long <b>swe_fixstar_mag</b>(char *</span><span
lang=EN-US style='color:blue'>star</span><span lang=EN-US>, double* </span><span
lang=EN-US style='color:blue'>mag</span><span lang=EN-US>, char* </span><span
lang=EN-US style='color:blue'>serr</span><span lang=EN-US>);</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Function calculates the magnitude of
a fixed star. The function returns OK or ERR. The magnitude value is returned
in the parameter <span style='color:blue'>mag</span>. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For the definition and use of the
parameter <span style='color:blue'>star</span> see function swe_fixstar(). The
parameter <span style='color:blue'>serr</span> and is, as usually, an error
string pointer.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479416"><span
lang=EN-US>5. Apsides functions</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479417"><span lang=EN-US>5.1 swe_nod_aps_ut</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The functions </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_nod_aps_ut()</span></span><span
lang=EN-US> and </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_nod_aps()</span></span><span lang=EN-US> compute planetary <a
name="_Hlk477836016">nodes and apsides</a> ( perihelia, aphelia, second focal
points of the orbital ellipses ). Both functions do exactly the same except
that they expect a different time parameter (cf. </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_calc_ut()</span></span><span
lang=EN-US> and </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc() </span></span><span lang=EN-US>).</span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The definitions are: </span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a
name="_Hlk477325741"><b>swe_nod_aps_ut</b></a>(double </span><span lang=EN-US
style='color:blue'>tjd_ut</span><span lang=EN-US>, int32 </span><span
lang=EN-US style='color:blue'>ip</span><span lang=EN-US>l, int32 </span><span
lang=EN-US style='color:blue'>iflag</span><span lang=EN-US>, int32 </span><span
lang=EN-US style='color:blue'>method</span><span lang=EN-US>, double *</span><span
lang=EN-US style='color:blue'>xnasc</span><span lang=EN-US>, double *</span><span
lang=EN-US style='color:blue'>xndsc</span><span lang=EN-US>, double *</span><span
lang=EN-US style='color:blue'>xperi</span><span lang=EN-US>, double *</span><span
lang=EN-US style='color:blue'>xaphe</span><span lang=EN-US>, char *</span><span
lang=EN-US style='color:blue'>serr</span><span lang=EN-US>);</span></p>
<p class=MsoPlainText><span lang=EN-US>where</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>tjd_ut<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =Julian
day in Universal Time</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>ipl <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =planet
number</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>iflag<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =same
as with swe_calc_ut() and swe_fixstar_ut()</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>method<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =another
integer that specifies the calculation method, see explanations below</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>xnasc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =array
of 6 doubles for ascending node</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>xndsc<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =array
of 6 doubles for descending node</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>xperi<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =array
of 6 doubles for perihelion</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>xaphe<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =array
of 6 doubles for aphelion</span></p>
<p class=SourceText style='margin-left:31.5pt;text-indent:-2.7pt;'><span lang=EN-US>serr[256] <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> =character
string to contain error messages in case of error.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479418"><span lang=EN-US>5.2 swe_nod_aps()</span></a></h3>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477325759"><b>swe_nod_aps</b></a>(double
tjd_et, int32 ipl, int32 iflag, int32 method, double *xnasc, double *xndsc,
double *xperi, double *xaphe, char *serr);</span></p>
<p class=MsoBodyText><span lang=EN-US>same, but</span></p>
<p class=SourceText><span lang=EN-US>tjd_et<EFBFBD><EFBFBD><EFBFBD><EFBFBD> =<3D><><EFBFBD><EFBFBD> Julian day in Ephemeris Time</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The parameter </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
lang=EN-US> allows the same specifications as with the function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc_ut()</span></span><span
lang=EN-US>. I.e., it contains the Ephemeris flag, the heliocentric,
topocentric, speed, nutation flags etc. etc.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The parameter </span><a
name="_Hlk477836150"><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>method</span></span></a><span lang=EN-US>
tells the function what kind of nodes or apsides are required:</span></p>
<p class=SourceText><span lang=EN-US>#define SE_NODBIT_MEAN<41><4E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1</span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This is also the default. Mean nodes
and apsides are calculated for the bodies that have them, i.e. for the Moon and
the planets Mercury through Neptune, osculating ones for Pluto and the
asteroids.</span></p>
<p class=SourceText><span lang=IT>#define
SE_NODBIT_OSCU<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2</span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Osculating nodes and apsides are
calculated for all bodies.</span></p>
<p class=SourceText><span lang=IT>#define
SE_NODBIT_OSCU_BAR<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4</span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Osculating nodes and apsides are
calculated for all bodies. With planets beyond Jupiter, they are computed from
a barycentric ellipse. Cf. the explanations in</span><span class=FileName><span
lang=DA style='font-family:Verdana'> swisseph.doc.</span></span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If this bit is combined with
SE_NODBIT_MEAN, mean values are given for the planets Mercury - Neptun.</span></p>
<p class=SourceText><span lang=FR>#define
SE_NODBIT_FOPOINT<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 256</span></p>
<p class=Textkrper-Einzug><span lang=RU>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The second focal point of the orbital
ellipse is computed and returned in the array of the aphelion. This bit can be
combined with any other bit.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>It is not meaningful to compute mean
oribital elements topocentrically. The concept of mean elements precludes
consideration of any short term fluctuations in coordinates.</span></p>
<p class=Textkrper-Einzug style='page-break-before:always'><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479419"><span
lang=EN-US>6. Eclipse and planetary phenomena functions</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There are the following functions
for eclipse and occultation calculations. </span></p>
<p class=Textkrper-Einzug><b><span
lang=EN-US>&nbsp;</span></b></p>
<p class=Textkrper-Einzug><b><span
lang=EN-US>Solar eclipses:</span></b></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_sol_eclipse_when_loc( tjd...)</span></span><span lang=EN-US> finds
the next eclipse for a given geographic position.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_sol_eclipse_when_glob( tjd...)</span></span><span lang=EN-US>
finds the next eclipse globally.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_sol_eclipse_where()</span></span><span lang=EN-US> computes the
geographic location of a solar eclipse for a given tjd. </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_sol_eclipse_how()</span></span><span lang=EN-US> computes
attributes of a solar eclipse for a given </span><span class=FileName><span
lang=DA style='font-family:Verdana'>tjd</span></span><span lang=EN-US>,
geographic </span><span class=FileName><span lang=DA style='font-family:Verdana'>longitude,
latitude</span></span><span lang=EN-US> and </span><span class=FileName><span
lang=DA style='font-family:Verdana'>height</span></span><span lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><b><span
lang=EN-US>Occultations of planets by the moon:</span></b></p>
<p class=Textkrper-Einzug><span lang=EN-US>These functions can also be used for
solar eclipses. But they are slightly less efficient.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_lun_occult_when_loc( tjd...)</span></span><span lang=EN-US> finds
the next occultation for a body and a given geographic position.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_lun_occult_when_glob( tjd...)</span></span><span lang=EN-US> finds
the next occultation of a given body globally.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_lun_occult_where()</span></span><span lang=EN-US> computes the
geographic location of an occultation for a given tjd. </span></p>
<p class=Textkrper-Einzug><b><span lang=EN-US>&nbsp;</span></b></p>
<p class=Textkrper-Einzug><b><span lang=EN-US>Lunar eclipses:</span></b></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_lun_eclipse_when(tjd...)</span></span><span lang=EN-US> finds the
next lunar eclipse.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=FileName><span lang=DA style='font-family:Symbol;'><EFBFBD><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_lun_eclipse_how() </span></span><span
lang=EN-US>computes the attributes of a lunar eclipse for a given </span><span
class=FileName><span lang=DA style='font-family:Verdana'>tjd.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><b><span lang=EN-US>Risings, settings, and meridian
transits of planets and stars:</span></b></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=FuncName><span lang=DA style='font-family:Symbol;'><EFBFBD><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_rise_trans()</span></span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=FuncName><span lang=DA style='font-family:Symbol;'><EFBFBD><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>swe_rise_trans_true_hor( )
returns rising and setting times for a local horizon with altitude != 0</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><b><span lang=EN-US>Planetary phenomena:</span></b></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_pheno_ut()</span></span><span lang=EN-US> and </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_pheno()</span></span><span
lang=EN-US> compute phase angle, phase, elongation, apparent diameter, and
apparent magnitude of the Sun, the Moon, all planets and asteroids.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479420"><span lang=EN-GB>6.0.
Example of a typical eclipse calculation</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-GB>Find
the next total eclipse, calculate the geographical position where it is maximal
and the four contacts for that position (for a detailed explanation of all
eclipse functions see the next chapters):</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>&nbsp;</span></p>
<p class=SourceText><span lang=FR>double tret[10],
attr[20], geopos[10];</span></p>
<p class=SourceText><span lang=EN-GB>char
serr[255];</span></p>
<p class=SourceText><span lang=EN-GB>int32
whicheph = 0; /* default ephemeris */ </span></p>
<p class=SourceText><span lang=EN-GB>double
tjd_start = 2451545; /* Julian day number for 1 Jan 2000 */</span></p>
<p class=SourceText><span lang=EN-GB>int32
ifltype = SE_ECL_TOTAL <20> SE_ECL_CENTRAL <20> SE_ECL_NONCENTRAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* find
next eclipse anywhere on earth */</span></p>
<p class=SourceText><span lang=EN-GB>eclflag =
swe_sol_eclipse_when_glob(tjd_start, whicheph,<2C>
ifltype, tret, 0, serr);</span></p>
<p class=SourceText><span lang=DE>if (eclflag ==
ERR)</span></p>
<p class=SourceText><span lang=DE><EFBFBD> </span><span lang=EN-GB>return ERR;</span></p>
<p class=SourceText><span lang=EN-GB>/* the
time of the greatest eclipse has been returned in tret[0]; </span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* now we can find geographical position of
the eclipse maximum */</span></p>
<p class=SourceText><span lang=EN-GB>tjd_start
= tret[0];</span></p>
<p class=SourceText><span lang=EN-GB>eclflag =
swe_sol_eclipse_where(tjd_start, whicheph, geopos, attr, serr);</span></p>
<p class=SourceText><span lang=DE>if (eclflag ==
ERR)</span></p>
<p class=SourceText><span lang=DE><EFBFBD> </span><span lang=EN-GB>return ERR;</span></p>
<p class=SourceText><span lang=EN-GB>/* the
geographical position of the eclipse maximum is in geopos[0] and geopos[1];</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* now we can calculate the four contacts for
this place. The start time is chosen</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* a day before the maximum eclipse: */</span></p>
<p class=SourceText><span lang=EN-GB>tjd_start
= tret[0] - 1;</span></p>
<p class=SourceText><span lang=EN-GB>eclflag =
swe_sol_eclipse_when_loc(tjd_start, whicheph, geopos, tret, attr, 0, serr);</span></p>
<p class=SourceText><span lang=DE>if (eclflag ==
ERR)</span></p>
<p class=SourceText><span lang=DE><EFBFBD> </span><span lang=EN-GB>return ERR;</span></p>
<p class=SourceText><span lang=EN-GB>/* now
tret[] contains the following values:</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* tret[0] = time of greatest eclipse (Julian
day number)</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* tret[1] = first contact</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* tret[2] = second contact</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* tret[3] = third contact</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD>* tret[4] = fourth contact */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479421"><span lang=EN-US>6.1. swe_sol_eclipse_when_loc() and
swe_lun_occult_when_loc()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To find the <a name="_Hlk477836581">next
eclipse</a> for a given geographic position, use swe_sol_eclipse_when_loc(). </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326105"><b>swe_sol_eclipse_when_loc</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search,
Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
western longitude is negative,<2C>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>double
*attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL
backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search
*/</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns: </span></p>
<p class=SourceText><span lang=EN-US>/* retflag<61><67><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc() for
sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL or SE_ECL_ANNULAR or
SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_VISIBLE, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_MAX_VISIBLE, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_1ST_VISIBLE, SE_ECL_2ND_VISIBLE</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_3ST_VISIBLE, SE_ECL_4ND_VISIBLE</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[0]<5D><><EFBFBD><EFBFBD> <a
name="_Hlk477836682">time of maximum eclipse</a></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[1]<5D><><EFBFBD><EFBFBD> time
of first contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[2]<5D><><EFBFBD><EFBFBD> time
of second contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[3]<5D><><EFBFBD><EFBFBD> time
of third contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[4]<5D><><EFBFBD><EFBFBD> time
of forth contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[5]<5D><><EFBFBD><EFBFBD> time
of sunrise between first and forth contact (not implemented so far)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[6]<5D><><EFBFBD><EFBFBD> time
of sunset beween first and forth contact<63>
(not implemented so far)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[0]<5D><><EFBFBD><EFBFBD> fraction
of solar diameter covered by moon;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> with total/annular eclipses, it results in
magnitude acc. to IMCCE.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[1]<5D><><EFBFBD><EFBFBD> ratio
of lunar diameter to solar one</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[2]<5D><><EFBFBD><EFBFBD> fraction
of solar disc covered by moon (obscuration)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[3]<5D><><EFBFBD><EFBFBD> diameter
of core shadow in km</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[4]<5D><><EFBFBD><EFBFBD> azimuth
of sun at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[5]<5D><><EFBFBD><EFBFBD> true
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[6]<5D><><EFBFBD><EFBFBD> apparent
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[7]<5D><><EFBFBD><EFBFBD> elongation
of moon in degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span><span
lang=IT>attr[8]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>magnitude acc. to NASA;</span></p>
<p class=SourceText><span lang=IT><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>= attr[0] for
partial and attr[1] for annular and total eclipses</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[9]<5D><><EFBFBD><EFBFBD> saros
series number</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[10]<5D><><EFBFBD><EFBFBD> saros
series member number</span></p>
<p class=SourceText><span lang=EN-US>*/</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479422"><span lang=EN-US>6.2. swe_sol_eclipse_when_glob()</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To find the <a name="_Hlk477836848">next
eclipse globally</a>: </span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326215"><b>swe_sol_eclipse_when_glob</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>int32 ifltype, <20><><EFBFBD><EFBFBD> /* eclipse type wanted: SE_ECL_TOTAL etc. or 0, if any eclipse
type */</span></p>
<p class=SourceText><span lang=EN-US>double *tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function requires the time
parameter <i>tjd_start</i> in <i>Universal Time </i>and also yields the
return values (<i>tret[]</i>) in UT.<2E> For conversions between ET and UT, use the
function swe_deltat().</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Note: An implementation of this
function with parameters in Ephemeris Time would have been possible. The
question when the next solar eclipse will happen anywhere on earth is
independent of the rotational position of the earth and therefore independent
of Delta T. However, the function is often used in combination with other
eclipse functions (see example below), for which input and output in ET makes
no sense, because they concern local circumstances of an eclipse and therefore <i>are </i>dependent on the rotational position
of the earth. For this reason, UT has been chosen for the time parameters of
all eclipse functions. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>ifltype specifies the eclipse type
wanted. It can be a combination of the following bits (see swephexp.h): </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_CENTRAL<41><4C><EFBFBD><EFBFBD> 1</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_NONCENTRAL<41><4C> <20><><EFBFBD><EFBFBD> 2</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_TOTAL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_ANNULAR <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8</span></p>
<p class=SourceText><span lang=IT>#define SE_ECL_PARTIAL <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16</span></p>
<p class=SourceText><span lang=EN-GB>#define SE_ECL_ANNULAR_TOTAL<41><4C><EFBFBD><EFBFBD> 32</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>Recommended
values for ifltype:</span></p>
<p class=SourceText><span lang=EN-GB>/*</span><span
lang=EN-US> search for any eclipse, no matter which type */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
0;<3B> </span></p>
<p class=SourceText><span lang=EN-GB>/* search
a total eclipse; note: non-central total eclipses are very rare */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
SE_ECL_TOTAL <20> SE_ECL_CENTRAL <20> SE_ECL_NONCENTRAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* search
an annular eclipse */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
SE_ECL_TOTAL <20> SE_ECL_CENTRAL <20> SE_ECL_NONCENTRAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* search
an annular-total (hybrid) eclipse */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype_ =
SE_ECL_ANNULAR_TOTAL <20> SE_ECL_CENTRAL <20> SE_ECL_NONCENTRAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* search
a partial eclipse */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
SE_ECL_PARTIAL;</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=Inverse><span lang=EN-US>If your code
does not work, please study the sample code in swetest.c.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns: </span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/*
retflag<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if
swe_calc() for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL
or SE_ECL_ANNULAR or SE_ECL_PARTIAL or SE_ECL_ANNULAR_TOTAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_NONCENTRAL</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[0]<5D><><EFBFBD><EFBFBD> time
of maximum eclipse</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[1]<5D><><EFBFBD><EFBFBD> time,
when eclipse takes place at local apparent noon</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[2]<5D><><EFBFBD><EFBFBD> time
of eclipse begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[3]<5D><><EFBFBD><EFBFBD> time
of eclipse end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[4]<5D><><EFBFBD><EFBFBD> time
of totality begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[5]<5D><><EFBFBD><EFBFBD> time
of totality end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[6]<5D><><EFBFBD><EFBFBD> time
of center line begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[7]<5D><><EFBFBD><EFBFBD> time
of center line end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[8]<5D><><EFBFBD><EFBFBD> time
when annular-total eclipse becomes total not implemented so far</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[9]<5D><><EFBFBD><EFBFBD> time
when annular-total eclipse becomes annular again not implemented so far</span></p>
<p class=SourceText><span lang=EN-US
style='color:red'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US
style='color:red'><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
class=Inverse><span lang=EN-US style='font-family:Arial'>declare as tret[10] at
least !</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479423"><span lang=EN-US>6.3. swe_sol_eclipse_how ()</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To calculate the <a
name="_Hlk477837220">attributes of an eclipse for a given geographic position
and time</a>:</span></p>
<p class=MsoSalutation><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326421"><b>swe_sol_eclipse_how</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos<6F><73><EFBFBD><EFBFBD> /* geogr. longitude, latitude,
height above sea</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>* eastern longitude is
positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* retflag
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc()
for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL or SE_ECL_ANNULAR or
SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0,
if no eclipse is visible at geogr. position.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[0]<5D><><EFBFBD><EFBFBD> fraction
of solar diameter covered by moon;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> with total/annular eclipses, it results in
magnitude acc. to IMCCE.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[1]<5D><><EFBFBD><EFBFBD> ratio
of lunar diameter to solar one</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[2]<5D><><EFBFBD><EFBFBD> fraction
of solar disc covered by moon (obscuration)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[3]<5D><><EFBFBD><EFBFBD> diameter
of core shadow in km</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[4]<5D><><EFBFBD><EFBFBD> azimuth
of sun at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[5]<5D><><EFBFBD><EFBFBD> true
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[6]<5D><><EFBFBD><EFBFBD> apparent
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[7]<5D><><EFBFBD><EFBFBD> elongation
of moon in degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span><span
lang=IT>attr[8]<5D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>magnitude acc. to NASA;</span></p>
<p class=SourceText><span lang=IT><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>= attr[0] for
partial and attr[1] for annular and total eclipses</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[9]<5D><><EFBFBD><EFBFBD> saros
series number</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>attr[10]<5D><><EFBFBD><EFBFBD> saros
series member number</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479424"><span lang=EN-US>6.4. swe_sol_eclipse_where ()</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function can be used <a
name="_Hlk477837360">to find out the geographic position</a>, where, for a
given time, a central eclipse is central or where a non-central eclipse is
maximal. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If you want to <a
name="_Hlk477837327">draw the eclipse path</a> of a total or annular eclipse on
a map, first compute the start and end time of the total or annular phase with </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_sol_eclipse_when_glob()</span></span><span
lang=EN-US>, then </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>call swe_sol_eclipse_how()</span></span><span lang=EN-US> for several
time intervals to get geographic positions on the central path. The northern
and southern limits of the <a name="_Hlk477837444">umbra and penumbra</a> are
not implemented yet. </span></p>
<p class=MsoSalutation><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326645"><b>swe_sol_eclipse_where</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos,<2C><><EFBFBD><EFBFBD> /* return array, 2 doubles, geo. long. and lat.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* -1 (ERR)<29><><EFBFBD><EFBFBD> on error (e.g. if swe_calc() for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD> if there is no solar eclipse at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_ANNULAR</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL | SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL | SE_ECL_NONCENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_ANNULAR | SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span><span
lang=IT>SE_ECL_ANNULAR | SE_ECL_NONCENTRAL</span></p>
<p class=SourceText><span lang=IT><EFBFBD> </span><span lang=EN-US>SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[0]:<3A><><EFBFBD><EFBFBD> geographic longitude
of central line</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[1]:<3A><><EFBFBD><EFBFBD> geographic latitude
of central line</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
not implemented so far:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[2]:<3A><><EFBFBD><EFBFBD> geographic longitude
of northern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[3]:<3A><><EFBFBD><EFBFBD> geographic latitude
of northern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[4]:<3A><><EFBFBD><EFBFBD> geographic longitude
of southern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[5]:<3A><><EFBFBD><EFBFBD> geographic latitude
of southern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[6]:<3A><><EFBFBD><EFBFBD> geographic longitude
of northern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[7]:<3A><><EFBFBD><EFBFBD> geographic latitude
of northern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[8]:<3A><><EFBFBD><EFBFBD> geographic longitude
of southern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[9]:<3A><><EFBFBD><EFBFBD> geographic latitude
of southern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
eastern longitudes are positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
western longitudes are negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
northern latitudes are positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
southern latitudes are negative</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[0]<5D><><EFBFBD><EFBFBD> fraction of solar
diameter covered by the moon</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[1]<5D><><EFBFBD><EFBFBD> ratio of lunar diameter
to solar one</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[2]<5D><><EFBFBD><EFBFBD> fraction of solar disc
covered by moon (obscuration)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[3]<5D><><EFBFBD><EFBFBD> diameter of core shadow
in km</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[4]<5D><><EFBFBD><EFBFBD> azimuth of sun at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[5]<5D><><EFBFBD><EFBFBD> true altitude of sun
above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[6]<5D><><EFBFBD><EFBFBD> apparent altitude of
sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[7]<5D><><EFBFBD><EFBFBD> angular distance of
moon from sun in degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[8]<5D> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> eclipse
magnitude (= attr[0] or attr[1] depending on eclipse type)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[9]<5D> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> saros
series number</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[10]<5D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> saros
series member number</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span class=Inverse><span
lang=EN-US style='font-family:Arial'>declare as attr[20]!</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479425"><span lang=EN-US>6.5. swe_lun_occult_when_loc()</span></a></h3>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US style='color:black'>To find the next occultation of a planet or star
by the moon for a given location, use swe_lun_occult_when_loc().</span></p>
<p class=Textkrper-Einzug><span lang=EN-US style='color:black'>The same
function can also be used for local solar eclipses instead of
swe_sol_eclipse_when_loc(), but is a bit less efficient. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* Same declaration as
swe_sol_eclipse_when_loc().</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
In addition:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
int32 ipl<70><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> planet number of occulted body</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
char* starname<6D><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> name of occulted star. Must be NULL or
&quot;&quot;, if a planetary</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> occultation is to be calculated. For use of
this field, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> see swe_fixstar().</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
int32 ifl<66><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ephemeris flag. If you want to have only one conjunction</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> of the moon with the body tested, add the
following flag:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> backward |= SE_ECL_ONE_TRY. If this flag is
not set,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> the function will search for an occultation
until it</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> finds one. For bodies with ecliptical
latitudes &gt; 5,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> the function may search successlessly until
it reaches</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> the end of the ephemeris. </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_when_loc</b>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search,
Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
western longitude is negative,<2C>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>double
*attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL
backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search
*/</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US style='color:windowtext'>If an occultation of <i>any </i>planet is wanted, call the function for all planets you want to
consider and find the one with the smallest tret[1] (first contact). (If
searching backward, find the one with the greatest tret[1]). For efficiency,
set ifl |= SE_ECL_ONE_TRY. With this flag, only the next conjunction of the
moon with the bodies is checked. If no occultation has been found, repeat the
calculation with tstart = tstart + 20. </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US style='color:windowtext'>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns: </span></p>
<p class=SourceText><span lang=EN-US>/* retflag<61><67><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc()
for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<>
(if no occultation/no eclipse found)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL or SE_ECL_ANNULAR or
SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_VISIBLE, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_MAX_VISIBLE, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_1ST_VISIBLE, SE_ECL_2ND_VISIBLE</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_3ST_VISIBLE, SE_ECL_4ND_VISIBLE</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> These return values (except the
SE_ECL_ANNULAR) also appear with occultations.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[0]<5D><><EFBFBD><EFBFBD> time
of maximum eclipse</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[1]<5D><><EFBFBD><EFBFBD> time
of first contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[2]<5D><><EFBFBD><EFBFBD> time
of second contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[3]<5D><><EFBFBD><EFBFBD> time
of third contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[4]<5D><><EFBFBD><EFBFBD> time
of forth contact</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[5]<5D><><EFBFBD><EFBFBD> time
of sunrise between first and forth contact (not implemented so far)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[6]<5D><><EFBFBD><EFBFBD> time
of sunset beween first and forth contact<63>
(not implemented so far)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[0]<5D><><EFBFBD><EFBFBD> fraction
of solar diameter covered by moon (magnitude)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[1]<5D><><EFBFBD><EFBFBD> ratio
of lunar diameter to solar one</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[2]<5D><><EFBFBD><EFBFBD> fraction
of solar disc covered by moon (obscuration)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[3]<5D><><EFBFBD><EFBFBD> diameter
of core shadow in km</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[4]<5D><><EFBFBD><EFBFBD> azimuth
of sun at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[5]<5D><><EFBFBD><EFBFBD> true
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[6]<5D><><EFBFBD><EFBFBD> apparent
altitude of sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> attr[7]<5D><><EFBFBD><EFBFBD> elongation
of moon in degrees<65><73><EFBFBD><EFBFBD> */</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479426"><span lang=EN-US>6.6. swe_lun_occult_when_glob()</span></a></h3>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US style='color:black'>To find the next occultation of a planet or star
by the moon globally (not for a particular geographic location), use
swe_lun_occult_when_glob().</span></p>
<p class=Textkrper-Einzug><span lang=EN-US style='color:black'>The same
function can also be used for global solar eclipses instead of
swe_sol_eclipse_when_glob(), but is a bit less efficient. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* Same declaration as
swe_sol_eclipse_when_glob().</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
In addition:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
int32 ipl<70><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> planet number of occulted body</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
char* starname<6D><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> name of occulted star. Must be NULL or
&quot;&quot;, if a planetary</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> occultation is to be calculated. For use of
this field, </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> see
swe_fixstar().</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
int32 ifl<66><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ephemeris flag. If you want to have only one conjunction</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> of the moon with the body tested, add the
following flag:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> backward |= SE_ECL_ONE_TRY. If this flag is
not set,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> the function will search for an occultation
until it</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> finds one. For bodies with ecliptical
latitudes &gt; 5,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> the function may search successlessly until
it reaches</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> the
end of the ephemeris. </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_when_glob</b>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search,
Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=DA>int32 ifltype, <20><><EFBFBD><EFBFBD> /*
eclipse type wanted */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
western longitude is negative,<2C>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL
backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search
*/</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US style='color:windowtext'>If an occultation of <i>any </i>planet is wanted, call the function for all planets you want to
consider and find the one with the smallest tret[1] (first contact). (If
searching backward, find the one with the greatest tret[1]). For efficiency,
set ifl |= SE_ECL_ONE_TRY. With this flag, only the next conjunction of the
moon with the bodies is checked. If no occultation has been found, repeat the
calculation with tstart = tstart + 20. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns: </span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/*
retflag<EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc()
for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<>
(if no occultation / eclipse has been found)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL
or SE_ECL_ANNULAR or SE_ECL_PARTIAL or SE_ECL_ANNULAR_TOTAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_NONCENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[0]<5D><><EFBFBD><EFBFBD> time
of maximum eclipse</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[1]<5D><><EFBFBD><EFBFBD> time,
when eclipse takes place at local apparent noon</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[2]<5D><><EFBFBD><EFBFBD> time
of eclipse begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[3]<5D><><EFBFBD><EFBFBD> time
of eclipse end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[4]<5D><><EFBFBD><EFBFBD> time
of totality begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[5]<5D><><EFBFBD><EFBFBD> time
of totality end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[6]<5D><><EFBFBD><EFBFBD> time
of center line begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[7]<5D><><EFBFBD><EFBFBD> time
of center line end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[8]<5D><><EFBFBD><EFBFBD> time
when annular-total eclipse becomes total not implemented so far</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> tret[9]<5D><><EFBFBD><EFBFBD> time
when annular-total eclipse becomes annular again not implemented so far</span></p>
<p class=SourceText><span lang=EN-US
style='color:red'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US
style='color:red'><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
class=Inverse><span lang=EN-US style='font-family:Arial'>declare as tret[10] at
least !</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><span
lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479427"><span lang=EN-US>6.7. swe_lun_occult_where ()</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Similar to swe_sol_eclipse_where(),
this function can be used to find out the geographic position, where, for a
given time, a central eclipse is central or where a non-central eclipse is
maximal. With occultations, it tells us, at which geographic location the
occulted body is in the middle of the lunar disc or closest to it. Because
occultations are always visible from a very large area, this is not very
interesting information. But it may</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>become more interesting as soon as
the limits of the umbra (and penumbra) will be implemented.</span></p>
<p class=MsoSalutation><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_where </b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos,<2C><><EFBFBD><EFBFBD> /* return array, 2 doubles, geo. long. and lat.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* -1 (ERR)<29><><EFBFBD><EFBFBD> on error (e.g. if swe_calc() for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD> if there is no solar eclipse (occultation)
at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_ANNULAR</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL | SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_TOTAL | SE_ECL_NONCENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
SE_ECL_ANNULAR | SE_ECL_CENTRAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span><span
lang=IT>SE_ECL_ANNULAR | SE_ECL_NONCENTRAL</span></p>
<p class=SourceText><span lang=IT><EFBFBD> </span><span lang=EN-US>SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[0]:<3A><><EFBFBD><EFBFBD> geographic longitude
of central line</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[1]:<3A><><EFBFBD><EFBFBD> geographic latitude
of central line</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
not implemented so far:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[2]:<3A><><EFBFBD><EFBFBD> geographic longitude
of northern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[3]:<3A><><EFBFBD><EFBFBD> geographic latitude
of northern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[4]:<3A><><EFBFBD><EFBFBD> geographic longitude
of southern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[5]:<3A><><EFBFBD><EFBFBD> geographic latitude
of southern limit of umbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[6]:<3A><><EFBFBD><EFBFBD> geographic longitude
of northern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[7]:<3A><><EFBFBD><EFBFBD> geographic latitude
of northern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[8]:<3A><><EFBFBD><EFBFBD> geographic longitude
of southern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
geopos[9]:<3A><><EFBFBD><EFBFBD> geographic latitude
of southern limit of penumbra</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
eastern longitudes are positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
western longitudes are negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
northern latitudes are positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
southern latitudes are negative</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[0]<5D><><EFBFBD><EFBFBD> fraction of solar
diameter covered by moon (magnitude)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[1]<5D><><EFBFBD><EFBFBD> ratio of lunar diameter
to solar one</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[2]<5D><><EFBFBD><EFBFBD> fraction of solar disc
covered by moon (obscuration)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[3]<5D><><EFBFBD><EFBFBD> diameter of core shadow
in km</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[4]<5D><><EFBFBD><EFBFBD> azimuth of sun at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[5]<5D><><EFBFBD><EFBFBD> true altitude of sun
above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[6]<5D><><EFBFBD><EFBFBD> apparent altitude of
sun above horizon at tjd</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[7]<5D><><EFBFBD><EFBFBD> angular distance of
moon from sun in degrees</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span class=Inverse><span
lang=EN-US style='font-family:Arial'>declare as attr[20]!</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479428"><span lang=EN-US>6.8. swe_lun_eclipse_when ()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>To find the <a name="_Hlk477837545">next
lunar eclipse</a>:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326807"><b>swe_lun_eclipse_when</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>int32 ifltype, <20><><EFBFBD><EFBFBD> /* eclipse type wanted: SE_ECL_TOTAL etc.<2E> or 0, if any eclipse type */</span></p>
<p class=SourceText><span lang=EN-US>double *tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>Recommended
values for ifltype:</span></p>
<p class=SourceText><span lang=EN-GB>/*</span><span
lang=EN-US> search for any lunar eclipse, no matter which type */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
0;<3B> </span></p>
<p class=SourceText><span lang=EN-GB>/* search
a total lunar eclipse */</span></p>
<p class=SourceText><span lang=FR>ifltype =
SE_ECL_TOTAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* search
a partial lunar eclipse */</span></p>
<p class=SourceText><span lang=EN-GB>ifltype =
SE_ECL_PARTIAL;</span></p>
<p class=SourceText><span lang=EN-GB>/* search
a penumbral lunar eclipse */</span></p>
<p class=SourceText><span lang=IT>ifltype =
SE_ECL_PENUMBRAL;</span></p>
<p class=Textkrper-Einzug><span lang=IT>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=Inverse><span lang=EN-US>If your code
does not work, please study the sample code in swetest.c.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* retflag <20><><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc() for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL
or SE_ECL_PENUMBRAL or SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[0]<5D><><EFBFBD><EFBFBD> time of maximum eclipse</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[1]<5D> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[2]<5D><><EFBFBD><EFBFBD> time of partial phase
begin (indices consistent with solar eclipses)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[3]<5D><><EFBFBD><EFBFBD> time of partial phase
end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[4]<5D><><EFBFBD><EFBFBD> time of totality begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[5]<5D><><EFBFBD><EFBFBD> time of totality end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[6]<5D><><EFBFBD><EFBFBD> time of penumbral phase
begin</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
tret[7]<5D><><EFBFBD><EFBFBD> time of penumbral phase
end</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479429"><span lang=EN-US>6.9. swe_lun_eclipse_how ()</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function computes the <a
name="_Hlk477837573">attributes of a lunar eclipse</a> at a given time:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477326863"><b>swe_lun_eclipse_how</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* input array, geopos, geolon, geoheight</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns:</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* retflag <20><><EFBFBD><EFBFBD> -1 (ERR) on error (e.g. if swe_calc() for sun or moon fails)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> SE_ECL_TOTAL
or SE_ECL_PENUMBRAL or SE_ECL_PARTIAL</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0<><30>
if there is no eclipse</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>attr[0]<5D><><EFBFBD><EFBFBD> umbral
magnitude at tjd</span></p>
<p class=SourceText><span lang=EN-US>attr[1]<5D><><EFBFBD><EFBFBD> penumbral
magnitude</span></p>
<p class=SourceText><span lang=EN-US>attr[4]<5D><><EFBFBD><EFBFBD> azimuth
of moon at tjd. Not implemented so far</span></p>
<p class=SourceText><span lang=EN-US>attr[5]<5D><><EFBFBD><EFBFBD> true
altitude of moon above horizon at tjd. Not implemented so far</span></p>
<p class=SourceText><span lang=EN-US>attr[6]<5D><><EFBFBD><EFBFBD> apparent
altitude of moon above horizon at tjd. Not implemented so far</span></p>
<p class=SourceText><span lang=EN-US>attr[7]<5D><><EFBFBD><EFBFBD> distance
of moon from opposition in degrees</span></p>
<p class=SourceText><span lang=EN-US>attr[8]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> eclipse magnitude (= attr[0])</span></p>
<p class=SourceText><span lang=EN-US>attr[9]<5D><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> saros series number</span></p>
<p class=SourceText><span lang=EN-US>attr[10]<5D> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> saros series member number</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span class=Inverse><span lang=EN-US style='font-family:Arial'>declare
as attr[20] at least !</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479430"><span lang=EN-US>6.10. swe_rise_trans() and swe_rise_trans_true_hor()
(risings, settings, meridian transits)</span></a></h3>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function swe_rise_trans()
computes the times of <a name="_Hlk477837700">rising, setting and meridian
transits</a> for all planets, asteroids, the moon, and the fixed stars. The
function swe_rise_trans_true_hor() does the same for a local horizon that has
an altitude != 0. Their definitions are as follows: </span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477327296"><b>swe_rise_trans</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText>int32 epheflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</p>
<p class=SourceText><span lang=EN-US>int32 rsmi,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* integer specifying
that rise, set, orone of the two meridian transits is</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>wanted. see definition below */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* geograph. long., lat., height of observer
*/</span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar/hPa */</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C><><EFBFBD><EFBFBD> /* atmospheric temperature in deg. C */</span></p>
<p class=SourceText><span lang=EN-US>double *tret,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return address
(double) for rise time etc. */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return address for
error message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_rise_trans_true_hor</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText>int32 epheflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</p>
<p class=SourceText><span lang=EN-US>int32 rsmi,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* integer specifying
that rise, set, orone of the two meridian transits is</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>wanted. see definition below */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* geograph. long., lat., height of observer
*/</span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar/hPa */</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C><><EFBFBD><EFBFBD> /* atmospheric temperature in deg. C */</span></p>
<p class=SourceText><span lang=EN-US>double horhgt,<2C><><EFBFBD><EFBFBD> /* height of local horizon in deg at the point where the body
rises or sets*/</span></p>
<p class=SourceText><span lang=EN-US>double *tret,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return address
(double) for rise time etc. */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return address for
error message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The second function has one
additional parameter horhgt for the height of the local horizon at the point
where the body rises or sets.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The variable</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>
<a name="_Hlk477328165">rsmi</a></span></span><span
lang=EN-US> can have the following values:</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/*
for swe_rise_transit() and swe_rise_transit_true_hor() */</span></p>
<p class=SourceText><span lang=IT>#define SE_CALC_RISE<53><45><EFBFBD><EFBFBD> 1</span></p>
<p class=SourceText><span lang=IT>#define SE_CALC_SET<45><54><EFBFBD><EFBFBD> 2</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_CALC_MTRANSIT<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD> /* upper meridian transit (southern for
northern geo. latitudes) */</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_CALC_ITRANSIT<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8<><38><EFBFBD><EFBFBD> /* lower meridian transit (northern, below
the horizon) */</span></p>
<p class=SourceText><span lang=EN-US>/*
the following bits can be added (or<6F>ed) to SE_CALC_RISE or SE_CALC_SET */</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_BIT_DISC_CENTER<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 256<35><36><EFBFBD><EFBFBD> /* for rising or setting of disc center
*/</span></p>
<p class=SourceText><span
lang=EN-US>#define SE_BIT_DISC_BOTTOM<4F><4D><EFBFBD><EFBFBD><EFBFBD>
8192<EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* for rising or setting
of lower limb of disc */</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_BIT_NO_REFRACTION<EFBFBD><EFBFBD><EFBFBD> 512 <i><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></i>/* if refraction is not to be
considered */</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_BIT_CIVIL_TWILIGHT<EFBFBD><EFBFBD><EFBFBD> 1024 <i><EFBFBD><EFBFBD><EFBFBD></i>/* in order to calculate civil twilight
*/</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_BIT_NAUTIC_TWILIGHT 2048 <i><EFBFBD><EFBFBD><EFBFBD></i>/*
in order to calculate nautical twilight */</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_BIT_ASTRO_TWILIGHT<EFBFBD><EFBFBD> 4096 <i><EFBFBD><EFBFBD><EFBFBD></i>/* in order to calculate astronomical
twilight */</span></p>
<p class=SourceText><span
lang=EN-US>#define SE_BIT_FIXED_DISC_SIZE (16*1024) /* neglect the effect of
distance on disc size */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>rsmi </span></span><span
lang=EN-US>= 0 will return risings.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The rising times depend on the <a
name="_Hlk477837912">atmospheric pressure and temperature</a>. </span><a
name="_Hlk477328180"><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>atpress</span></span></a><span
lang=EN-US> expects the atmospheric pressure in </span><span class=FileName><span
lang=DA style='font-family:Verdana'>millibar (hectopascal)</span></span><span
lang=EN-US>; </span><a name="_Hlk477328191"><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>attemp</span></span></a><span
lang=EN-US> the temperature in degrees </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Celsius</span></span><span lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> is given the value 0, the function estimates the pressure from the
geographical altitude given in </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>geopos[2]</span></span><span
lang=EN-US> and </span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>attemp</span></span><span lang=EN-US>. If
</span><span class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:
"Times New Roman"'>geopos[2]</span></span><span lang=EN-US> is 0, </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> will be estimated for sea level.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479431"><span lang=EN-US>6.11. swe_pheno_ut() and swe_pheno(),
planetary phenomena</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>These functions compute <a
name="_Hlk477838007">phase, phase angle, elongation, apparent diameter,
apparent magnitude</a> for the Sun, the Moon, all planets and asteroids. The
two functions do exactly the same but expect a different time parameter.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477328995"><b>swe_pheno_ut</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut,<2C><><EFBFBD><EFBFBD> /* time Jul. Day UT */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=DA>int32 iflag, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <a name="_Hlk477329016"><b>swe_pheno</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_et,<2C><><EFBFBD><EFBFBD> /* time Jul. Day ET */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=EN-US>int32 iflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns:</span></p>
<p class=SourceText><span lang=EN-US>/* </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[0] = phase angle (earth-planet-sun)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[1] = phase (illumined fraction of disc)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[2] = elongation of planet</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[3] = apparent diameter of disc</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
attr[4] = apparent magnitude</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span class=Inverse><span lang=EN-US style='font-family:Arial'>declare
as attr[20] at least !</span></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
Note: the lunar magnitude is quite a complicated thing,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
but our algorithm is very simple. </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
The phase of the moon, its distance from the earth and</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
the sun is considered, but no other factors.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD> </span>iflag also allows SEFLG_TRUEPOS, SEFLG_HELCTR</p>
<p class=SourceText><EFBFBD><span lang=EN-US>*/</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479432"><span lang=EN-US>6.12. swe_azalt(), horizontal coordinates,
azimuth, altitude</span></a></h3>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_azalt()</span></span><span
lang=EN-US>computes the <a name="_Hlk477838340">horizontal coordinates</a>
(azimuth and altitude) of a planet or a star from either ecliptical or
equatorial coordinates. </span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US>void <a name="_Hlk477329169"><b>swe_azalt</b></a>(</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> </span><span lang=FR>double tjd_ut,<2C><><EFBFBD><EFBFBD> //
UT </span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=FR><3E><><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=PT-BR>int32 calc_flag,<2C><><EFBFBD><EFBFBD> // SE_ECL2HOR or SE_EQU2HOR</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=PT-BR><3E><><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>double *geopos,<2C><><EFBFBD><EFBFBD> // array of 3 doubles: geograph. long.,
lat., height</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double atpress,<2C><><EFBFBD><EFBFBD> // atmospheric pressure in mbar (hPa)</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double attemp,<2C><><EFBFBD><EFBFBD> // atmospheric temperature in degrees
Celsius</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double *xin, <20><><EFBFBD><EFBFBD> // array of 3 doubles: position of body in
either<EFBFBD> ecliptical or equatorial
coordinates, </span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> // depending on calc_flag </span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double *xaz); <20><><EFBFBD><EFBFBD> // return array of 3 doubles, containing
azimuth, true altitude, apparent altitude</span></p>
<p class=SourceText style='text-indent:-48.6pt;'><span
lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='text-indent:-57.6pt'><span lang=EN-US>If <b>calc_flag</b>=SE_ECL2HOR,
set xin[0]= ecl. long., xin[1]= ecl. lat., (xin[2]=distance (not required));</span></p>
<p class=MsoBodyText style='text-indent:18.0pt'><span lang=EN-US>else </span></p>
<p class=SourceText style='text-indent:-57.6pt'><span lang=EN-US>if <b>calc_flag</b>=
SE_EQU2HOR, set xin[0]=rectascension, xin[1]=declination, (xin[2]= distance
(not required));</span></p>
<p class=SourceText style='text-indent:-48.6pt'><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=IT>#define
SE_ECL2HOR<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0</span></p>
<p class=SourceText><span lang=IT>#define
SE_EQU2HOR<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1</span></p>
<p class=Textkrper-Einzug><span lang=IT>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The return values are: </span></p>
<p class=SourceText><span lang=EN-US>xaz[0] = <a name="_Hlk477838689">azimuth</a>,
i.e. position degree, measured from the south point to west.</span></p>
<p class=SourceText><span lang=EN-US>xaz[1] = true <a name="_Hlk477838704">altitude</a>
above horizon in degrees.</span></p>
<p class=SourceText><span lang=EN-US>xaz[2] = apparent (refracted) altitude
above horizon in degrees.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The apparent altitude of a body
depends on the atmospheric pressure and temperature. If only the true altitude
is required, these parameters can be neglected.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> is given the value 0, the function estimates the pressure from the
geographical altitude given in geopos[2] and </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>attemp</span></span><span
lang=EN-US>. If geopos[2] is 0, </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> will be estimated for sea level.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479433"><span lang=EN-US>6.13. swe_azalt_rev()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_azalt_rev()</span></span><span lang=EN-US>is not precisely the reverse of </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_azalt()</span></span><span
lang=EN-US>. It computes either ecliptical or equatorial coordinates from
azimuth and true altitude. If only an apparent altitude is given, the true
altitude has to be computed first with the function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_refrac()</span></span><span
lang=EN-US>&nbsp;(see below).</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>It is defined as follows:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk477329516"><b>swe_azalt_rev</b></a>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=FR>double tjd_ut,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 calc_flag,<2C><><EFBFBD><EFBFBD> /* either SE_HOR2ECL or SE_HOR2EQU */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *geopos,<2C><><EFBFBD><EFBFBD> /* array of 3
doubles for geograph. pos. of observer */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *xin, <20><><EFBFBD><EFBFBD> /* array of 2 doubles for azimuth and true
altitude of planet */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *xout); <20><><EFBFBD><EFBFBD> // return array
of 2 doubles for either ecliptic or</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> //
equatorial coordinates, depending on calc_flag </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For the definition of the azimuth
and true altitude, see chapter 4.9 on </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_azalt()</span></span><span lang=EN-US>.</span></p>
<p class=SourceText><span lang=IT>#define
SE_HOR2ECL<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0</span></p>
<p class=SourceText><span lang=IT>#define
SE_HOR2EQU<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479434"><span lang=EN-US>6.14. swe_refrac(),
swe_refract_extended(), refraction</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The <a name="_Hlk477838834">refraction</a>
function </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_refrac()</span></span><span lang=EN-US>calculates either the true altitude from
the apparent altitude or the apparent altitude from the apparent altitude. Its
definition is: </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477329626"><b>swe_refrac</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double inalt, </span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar (hPa) */</span></p>
<p class=SourceText><span lang=EN-US>double attemp, <20><><EFBFBD><EFBFBD> /* atmospheric temperature in degrees Celsius */</span></p>
<p class=SourceText><span lang=EN-US>int32 calc_flag);<3B><><EFBFBD><EFBFBD> /* either SE_TRUE_TO_APP or SE_APP_TO_TRUE */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>where</span></p>
<p class=SourceText><span lang=EN-US>#define SE_TRUE_TO_APP<50> 0</span></p>
<p class=SourceText><span lang=EN-US>#define SE_APP_TO_TRUE<55><45><EFBFBD><EFBFBD> <20> 1</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The refraction depends on the
atmospheric pressure and temperature at the location of the observer. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> is given the value 0, the function estimates the pressure from the
geographical altitude given in geopos[2] and </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>attemp</span></span><b><span
lang=EN-US>.</span></b><span lang=EN-US> If geopos[2] is 0, </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>atpress</span></span><span
lang=EN-US> will be estimated for sea level.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There is also a more sophisticated
function </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_refrac_extended()</span></span><span
lang=EN-US>,<2C> It allows correct
calculation of refraction for altitudes above sea &gt; 0, where the ideal
horizon and planets that are visible may have a negative height. (for
swe_refrac(), negative apparent heights do not exist!)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>double <b>swe_refract_extended</b>(</span></p>
<p class=SourceText><span lang=EN-US>double inalt, <20><><EFBFBD><EFBFBD> /* altitude of object above geometric horizon in degrees, where</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>geometric horizon = plane perpendicular to
gravity */</span></p>
<p class=SourceText><span lang=EN-US>double geoalt, <20><><EFBFBD><EFBFBD> /* altitude of observer above sea level in meters */</span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar (hPa) */</span></p>
<p class=SourceText><span lang=EN-US>double lapse_rate, <20><><EFBFBD><EFBFBD> /* (dattemp/dgeoalt) = [<5B>K/m] */</span></p>
<p class=SourceText><span lang=EN-US>double attemp, <20><><EFBFBD><EFBFBD> /* atmospheric temperature in degrees Celsius */</span></p>
<p class=SourceText><span lang=EN-US>int32 calc_flag);<3B><><EFBFBD><EFBFBD> /* either SE_TRUE_TO_APP or SE_APP_TO_TRUE */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>function returns:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>case 1, conversion from true
altitude to apparent altitude:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- apparent altitude, if body appears
above is observable above ideal horizon</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- true altitude (the input value),
otherwise</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD>
&quot;ideal horizon&quot; is the horizon as seen above an ideal sphere
(as seen from a plane over the ocean with </span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD>
a clear sky)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>case 2, conversion from apparent
altitude to true altitude:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- the true altitude resulting from
the input apparent altitude, if this value is a plausible apparent altitude, </span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD>
i.e. if it is a position above the ideal horizon</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- the input altitude otherwise</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>in addition the array dret[] returns
the following values</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- dret[0] true altitude, if
possible; otherwise input value</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- dret[1] apparent altitude, if
possible; otherwise input value</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- dret[2] refraction</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>- dret[3] dip of the horizon</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The body is above the horizon if the
dret[0] != dret[1]</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479435"><span lang=EN-US>6.15. Heliacal risings etc.:
swe_heliacal_ut()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_heliacal_ut()</span></span><span lang=EN-US>the Julian day of the next heliacal
phenomenon after a given start date. It works between geographic latitudes 60s
<EFBFBD> 60n.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_heliacal_ut</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjdstart, <20><><EFBFBD><EFBFBD> /* Julian day number of start date for the search of the
heliacal event */</span></p>
<p class=SourceText><span lang=EN-US>double *dgeo<65><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* geographic position (details below) */ </span></p>
<p class=SourceText><span lang=EN-US>double *datm, <20><><EFBFBD><EFBFBD> /* atmospheric conditions (details below) */</span></p>
<p class=SourceText><span lang=EN-US>double *dobs, <20><><EFBFBD><EFBFBD> /* observer description (details below) */</span></p>
<p class=SourceText><span lang=EN-US>char *objectname,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* name string of fixed star or planet
*/</span></p>
<p class=SourceText><span lang=EN-US>int32 event_type, <20><><EFBFBD><EFBFBD> /* event type (details below) */</span></p>
<p class=SourceText><span lang=EN-US>int32 helflag, <20><><EFBFBD><EFBFBD> /* calculation flag, bitmap (details below) */</span></p>
<p class=SourceText><span lang=EN-US>double *dret,<2C><><EFBFBD><EFBFBD> /* result: array of at least 50 doubles, of which 3 are used at
the moment */</span></p>
<p class=SourceText><span lang=EN-US>char * serr<72><72><EFBFBD><EFBFBD> /* error string */</span></p>
<p class=SourceText><span lang=EN-US>);<3B><><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Function
returns OK or ERR</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for dgeo[] (array of
doubles):</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dgeo[0]: geographic longitude</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dgeo[1]: geographic latitude</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dgeo[2]: geographic altitude (eye
height) in meters </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for datm[] (array of
doubles):</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> datm[0]: atmospheric pressure in mbar
(hPa)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> datm[1]: atmospheric temperature in
degrees Celsius</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> datm[2]: relative humidity in %</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> datm[3]: if datm[3]&gt;=1, then it is
Meteorological Range [km]</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>if 1&gt;datm[3]&gt;0,
then it is the total atmsopheric coeffcient (ktot)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> datm[3]=0, then the
other atmospheric parameters determine the total </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>atmsopheric coeffcient (ktot)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Default values:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> If this is too much for you, set all
these values to 0. The software will then set the following defaults:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Pressure 1013.25, temperature 15,
relative humidity 40. The values will be modified depending </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> on the altitude of the observer above
sea level.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> If the extinction coefficient
(meteorological range) datm[3] is 0, the software will calculate its value</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> from datm[0..2].</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for dobs[] (array of
doubles):</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>dobs[0]: age of observer in years (default = 36)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dobs[1]: Snellen ratio of observers
eyes (default = 1 = normal)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>The
following parameters are only relevant if the flag SE_HELFLAG_OPTICAL_PARAMS is
set:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dobs[2]: 0 = monocular, 1 = binocular
(actually a boolean)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dobs[3]: telescope magnification: 0 =
default to naked eye (binocular), 1 = naked eye</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=IT>dobs[4]: optical aperture (telescope
diameter) in mm</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=IT><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-US>dobs[5]: optical transmission</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for event_type:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> event_type = SE_HELIACAL_RISING (1):
morning first (exists for all visible planets and stars)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> event_type = SE_HELIACAL_SETTING (2):
evening last (exists for all visible planets and stars) </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> event_type = SE_EVENING_FIRST (3):
evening first (exists for Mercury, Venus, and the Moon)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> event_type = SE_MORNING_LAST (4):
morning last (exists for Mercury, Venus, and the Moon)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for helflag:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> helflag contains ephemeris flag, like
iflag in swe_calc() etc. In addition it can contain the following bits:</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SE_HELFLAG_LONG_SEARCH (128): A
heliacal event is searched until found. </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> If this bit is NOT set and no
event is found within 5 synodic periods, the function stops </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> searching and<6E> returns ERR.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SE_HELFLAG_HIGH_PRECISION (256): More
rigorous but also slower algorithms are used</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SE_HELFLAG_OPTICAL_PARAMS (512): Use
this with calculations for optical instruments. </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Unless this bit is set, the
values of dobs[2-5] are ignored.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SE_HELFLAG_NO_DETAILS (1024): provide
the date, but not details like visibility start, optimum, and end.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> This bit makes the program a bit
faster.</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Details for return array dret[]
(array of doubles):</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dret[0]: start visibility (Julian day
number)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dret[1]: optimum visibility (Julian
day number)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dret[2]: end of visibility (Julian day
number)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479436"><span lang=EN-US>6.16. Magnitude limit for visibility:
swe_vis_limit_mag()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_vis_lim_mag()</span></span><span lang=EN-US>determines the limiting visual magnitude
in dark skies:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=FR>double <b>swe_vis_limit_mag</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjdut, <20><><EFBFBD><EFBFBD> /* Julian day number */</span></p>
<p class=SourceText><span lang=EN-US>double *dgeo<65><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* geographic position (details under
swe_heliacal_ut() */ </span></p>
<p class=SourceText><span lang=EN-US>double *datm, <20><><EFBFBD><EFBFBD> /* atmospheric conditions (details under swe_heliacal_ut()) */</span></p>
<p class=SourceText><span lang=EN-US>double *dobs, <20><><EFBFBD><EFBFBD> /* observer description (details under swe_heliacal_ut()) */</span></p>
<p class=SourceText><span lang=EN-US>char *objectname,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* name string of fixed star or planet
*/</span></p>
<p class=SourceText><span lang=EN-US>int32 helflag, <20><><EFBFBD><EFBFBD> /* calculation flag, bitmap (details under swe_heliacal_ut()) */</span></p>
<p class=SourceText><span lang=EN-US>double *dret,<2C><><EFBFBD><EFBFBD> /* result: magnitude required of the object to be visible */</span></p>
<p class=SourceText><span lang=EN-US>char * serr<72><72><EFBFBD><EFBFBD> /* error string */</span></p>
<p class=SourceText><span lang=EN-US>);<3B><><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US>Function
returns </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1<><31><EFBFBD><EFBFBD><EFBFBD> on
error</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> object
is below horizon</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OK,
photopic vision</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &amp;1<EFBFBD><EFBFBD><EFBFBD><EFBFBD> OK, scotopic vision</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &amp;2<EFBFBD><EFBFBD><EFBFBD><EFBFBD> OK, near limit photopic/scotopic vision</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-GB>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479437"><span
lang=EN-US>7. </span></a><a name="_Hlk477330063"><span lang=EN-US>Date and time conversion</span></a><span lang=EN-US> functions</span></h2>
<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479438"><span
lang=EN-US>7.1 Calendar Date and Julian Day: swe_julday(),
swe_date_conversion(), /swe_revjul()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>These functions are needed to
convert calendar dates to the astronomical time scale which measures time in
Julian days. </span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477329697"><b>swe_julday</b></a>(int
year, int month, int day, double hour, int gregflag); </span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477331070"><b>swe_date_conversion</b></a>
(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
y , int m , int d ,<2C><><EFBFBD><EFBFBD> /* year, month,
day */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> double hour, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* hours (decimal, with fraction) */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char c,<2C> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /*
calendar <20>g<EFBFBD>[regorian]|<7C>j<EFBFBD>[ulian] */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*tjd);<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return value for
Julian day */ </span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk477839146"></a><a
name="_Hlk477329710"><b>swe_revjul</b>
</a>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd, <20><> <20><><EFBFBD><EFBFBD> /*
Julian day number */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
gregflag,<2C> <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
*year,<2C> <20><><EFBFBD><EFBFBD> /*
target addresses for year, etc. */ </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
*month, int *day, double *hour);</span></p>
<p class=Textkrper-Einzug><i><span lang=EN-US>&nbsp;</span></i></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_julday()</span></span><span
lang=EN-US>and </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_date_conversion()</span></span><span lang=EN-US> compute a Julian
day number from year, month, day, and hour. </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_date_conversion()</span></span><span lang=EN-US>checks in addition <a name="_Hlk477839957">whether
the date is legal</a>. It returns OK or ERR.</span></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_revjul()</span></span><span lang=EN-US> is the reverse function of
</span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_julday()</span></span><span
lang=EN-US>.It computes year, month, day and hour from a Julian day
number.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The variable </span><a
name="_Hlk477329877"><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>gregflag</span></span></a><span
lang=EN-US> tells the function whether the input date is Julian calendar ( </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>gregflag</span></span><span
lang=EN-US> = SE_JUL_CAL) or Gregorian calendar ( </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>gregflag</span></span><span
lang=EN-US> = SE_GREG_CAL). </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Usually, you will set </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>gregflag</span></span><span lang=EN-US>= SE_GREG_CAL. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The <a name="_Hlk477330118">Julian
day</a> number has nothing to do with Julius Cesar, who introduced the Julian
calendar, but was invented by the monk Julianus. The Julian day number tells
for a given date the number of days that have passed since the creation of the world
which was then considered to have happened on 1 Jan <20>4712 at noon. E.g. the
1.1.1900 corresponds to the Julian day number 2415020.5.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Midnight has always a JD with
fraction 0.5, because traditionally<6C> the
astronomical day started at noon. This was practical because then there was no
change of date during a night at the telescope.<2E> From this comes also the fact that noon ephemerides were printed
before midnight ephemerides were introduced early in the 20th century. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479439"><span
lang=EN-US>7.2. UTC and Julian day: swe_utc_time_zone(), swe_utc_to_jd(),
swe_jdet_to_utc(), swe_jdut1_to_utc()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The following functions, which were
introduced with Swiss Ephemeris version 1.76, do a similar job as the functions
described under 7.1. The difference is that input and output times are Coordinated
Universal Time (UTC). For transformations between wall clock (or arm wrist)
time and Julian Day numbers, these functions are more correct. The difference
is below 1 second, though.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Use these functions to convert </span></p>
<p class=Textkrper-Einzug style='margin-left:36.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:"Times New Roman"'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>local time to UTC and UTC to local
time,</span></p>
<p class=Textkrper-Einzug style='margin-left:36.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:"Times New Roman"'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>UTC to a Julian day number, and</span></p>
<p class=Textkrper-Einzug style='margin-left:36.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:"Times New Roman"'>-<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>a Julian day number to UTC. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><b><span
lang=EN-US>Note</span></b><span lang=EN-US>, in case of leap seconds, the input
or output time may be 60.9999 seconds. Input or output forms have to allow for
this.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* transform local time to UTC or UTC to
local time</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
input:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> iyear ... dsec<65><63><EFBFBD><EFBFBD> date and time</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> d_timezone<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> timezone offset</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> iyear_out ... dsec_out</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For time zones east of Greenwich, d_timezone is positive.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For time zones west of Greenwich, d_timezone is negative.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For conversion from local time to utc, use +d_timezone.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For conversion from utc to local time, use -d_timezone.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=SourceText><span lang=EN-US>void FAR PASCAL_CONV <b>swe_ utc_time_zone</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 iyear, int32 imonth, int32 iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=FR>int32 ihour, int32
imin, double dsec,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>double d_timezone,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32
*iyear_out, int32 *imonth_out, int32 *iday_out,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 *ihour_out, int32 *imin_out, double *dsec_out</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
)</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* input: date and time (wall clock time),
calendar flag.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: an array of doubles with Julian Day number in ET (TT) and UT (UT1)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> an error
message (on error)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>* </span><span
lang=EN-GB>The function returns OK or ERR.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/
</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_utc_to_jd</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32
iyear, int32 imonth, int32 iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 ihour, int32 imin, double
dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dret<65><74><EFBFBD><EFBFBD> /*
return array, two doubles:</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* dret[0] = Julian day in ET (TT)</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* dret[1] = Julian day in UT (UT1) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> serr<72><72><EFBFBD><EFBFBD> /*
error string */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<p class=SourceText><span lang=EN-GB>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* input: Julian day number in ET (TT),
calendar flag</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: year, month, day, hour, min, sec in UTC */</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_jdet_to_utc</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>double tjd_et,<2C><><EFBFBD><EFBFBD> /* Julian day number in ET (TT) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 *iyear,
int32 *imonth, int32 *iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 *ihour, int32 *imin, double
*dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<p class=SourceText><span lang=EN-GB>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* input: Julian day number in UT (UT1),
calendar flag</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: year, month, day, hour, min, sec in UTC */</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_jdut1_to_utc</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>double tjd_ut,<2C><><EFBFBD><EFBFBD> /* Julian day number in ET (TT) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 *iyear,
int32 *imonth, int32 *iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 *ihour, int32 *imin, double
*dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>How do I get correct planetary
positions, sidereal time, and house cusps, starting from a wall clock date and
time?</span></p>
<p class=SourceText><span lang=EN-US style='font-size:10.0pt;font-family:Arial;
color:windowtext'>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32
iday, imonth, iyear, ihour, imin, retval;</span></p>
<p class=SourceText><span lang=EN-GB>int32 gregflag = SE_GREG_CAL;</span></p>
<p class=SourceText><span lang=EN-GB>double d_timezone = 5.5&nbsp;; /* time zone = Indian Standard Time; note:
east is positive */</span></p>
<p class=SourceText><span lang=FR>double dsec, tjd_et, tjd_ut;</span></p>
<p class=SourceText><span lang=FR>double dret[2];</span></p>
<p class=SourceText><span lang=FR>char serr[256];</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US>/* if
date and time is in time zone different from UTC, the time zone offset must be
subtracted</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>* first in order to get UTC: */</span></p>
<p class=SourceText><span lang=EN-GB>swe_utc_time_zone(iyear, imonth, iday, ihour, imin, dsec, d_timezone,</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> &amp;iyear_utc,
&amp;imonth_utc, &amp;iday_utc, &amp;ihour_utc, &amp;imin_utc, &amp;dsec_utc)</span></p>
<p class=SourceText><span lang=EN-US>/*
calculate Julian day number in UT (UT1) and ET (TT) from UTC */</span></p>
<p class=SourceText><span lang=EN-US>retval =
swe_utc_to_jd</span><span lang=EN-US> (iyear_utc, imonth_utc, iday_utc,
ihour_utc, imin_utc, dsec_utc, gregflag, dret, serr);</span></p>
<p class=SourceText><span lang=EN-US>if (retval == ERR) {</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD> </span>fprintf(stderr,
serr);<3B> /* error handling */</p>
<p class=SourceText><span lang=EN-US>}</span></p>
<p class=SourceText><span lang=EN-US>tjd_et = dret[0];<3B> /* this is ET (TT) */</span></p>
<p class=SourceText><span lang=EN-US>tjd_ut = dret[1];<3B> /* this is UT (UT1) */</span></p>
<p class=SourceText><span lang=EN-US>/* calculate planet with tjd_et */</span></p>
<p class=SourceText><span lang=EN-GB>swe_calc(tjd_et,
<EFBFBD>);</span></p>
<p class=SourceText><span lang=EN-US>/* calculate houses with tjd_ut */</span></p>
<p class=SourceText><span lang=EN-US>swe_houses(tjd_ut, <20>)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>And how do you get the date and wall
clock time from a Julian day number? Depending on whether you have tjd_et
(Julian day as ET (TT)) or tjd_ut (Julian day as UT (UT1)), use one of the two
functions swe_jdet_to_utc() or swe_jdut1_to_utc().</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span></p>
<p class=SourceText><span lang=EN-US>/* first, we calculate UTC from TT (ET) */</span></p>
<p class=SourceText><span lang=EN-US>swe_jdet_to_utc(tjd_et, gregflag,
&amp;iyear_utc, &amp;imonth_utc, &amp;iday_utc, &amp;ihour_utc, &amp;imin_utc,
&amp;dsec_utc);</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> /* now, UTC to local time (note the
negative sign before d_timezone): */</span></p>
<p class=SourceText><span lang=EN-GB>swe_utc_time_zone(iyear_utc, imonth_utc, iday_utc, ihour_utc, imin_utc,
dsec_utc, </span></p>
<p class=SourceText><span lang=EN-GB>-d_timezone, &amp;iyear, &amp;imonth, &amp;iday, &amp;ihour, &amp;imin,
&amp;dsec)</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'><span lang=EN-GB>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479440"><span
lang=EN-US>7.3. Future insertion of leap seconds and the file swe_leapsec.txt</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>The insertion of leap seconds is not
known in advance. We will update the Swiss Ephemeris whenever the IERS
announces that a leap second will be inserted. However, if the user does not
want to wait for our update or does not want to download a new version of the
Swiss Ephemeris, he can create a file swe_leapsec.txt in the ephemeris
directory. Insert a line with the date on which a leap second has to be
inserted. The file looks as follows:</span></p>
<p class=SourceText><span lang=EN-US># This file contains the dates of leap
seconds to be taken into account</span></p>
<p class=SourceText><span lang=EN-US># by the Swiss Ephemeris.</span></p>
<p class=SourceText><span lang=EN-US># For each new leap second add the date of
its insertion in the format</span></p>
<p class=SourceText><span lang=EN-US># yyyymmdd, e.g. &quot;20081231&quot; for
21 december 2008</span></p>
<p class=SourceText><span lang=EN-US>20081231</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479441"><span
lang=EN-US>7.4. Mean solar time versus True solar time: swe_time_equ()</span></a></h3>
<p class=Textkrper-Einzug><a name="_Hlk477330492"><span class=FileName><span
lang=DA style='font-family:Verdana'>Universal Time</span></span></a><span
lang=EN-US> (UT or UTC) is based on </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Mean Solar Time</span></span><span lang=EN-US>, AKA
</span><span class=FileName><span lang=DA style='font-family:Verdana'>Local
Mean Time</span></span><span lang=EN-US>, which is a uniform measure of time. A
day has always the same length, independent of the time of the year. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>In the centuries before mechanical
clocks where used, when the reckoning of time was mostly based on sun dials,
the </span><span class=FileName><span lang=DA style='font-family:Verdana'>True
Solar Time</span></span><span lang=EN-US> was used, also called </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Local Apparent Time</span></span><span
lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The difference between </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Local Mean Time</span></span><span
lang=EN-US> and </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Local Apparent Time</span></span><span lang=EN-US> is called the <a
name="_Hlk477840429"><b>equation of time</b></a>. This difference can become as
large as 20 minutes.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If a birth time of a historical
person was noted in </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Local Apparent Time</span></span><span lang=EN-US>, it must first be
converted to </span><span class=FileName><span lang=DA style='font-family:Verdana'>Local
Mean Time</span></span><span lang=EN-US> by applying the equation of time,
before it can be used to compute Universal Time (for the houses) and finally <a
href="#_Hlk477830987"><span style='font-family:Verdana'>Ephemeris Time</span></a>
(for the planets). </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There is a function for computing
the correction value.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* equation of time function returns the
difference between local apparent and local mean time.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD></span><span
lang=IT>e = LAT <20> LMT.<2E> </span><span lang=EN-US>tjd is ephemeris time */</span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477330339"><b>swe_time_equ</b></a>(double
</span><span lang=EN-US style='color:blue'>tjd</span><span lang=EN-US>, double*
</span><span lang=EN-US style='color:blue'>e</span><span lang=EN-US>, char* </span><span
lang=EN-US style='color:blue'>serr</span><span lang=EN-US>);</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If you first compute </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>tjd</span></span><span
lang=EN-US> on the basis of the registered </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Local Apparent Time</span></span><span
lang=EN-US>, you convert it to </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Local Mean Time</span></span><span lang=EN-US>
with:</span></p>
<p class=SourceText><span lang=EN-US>tjd_mean = tjd_app + e;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479442"><span
lang=EN-US>8. Delta T-related functions</span></a></h2>
<p class=SourceText><span lang=EN-US>/* delta t from Julian day number */</span></p>
<p class=SourceText><span lang=FR>double <a
name="_Hlk477840778"><b>swe_deltat</b></a>(double tjd);</span></p>
<p class=SourceText><span lang=EN-US>/* get tidal acceleration used in
swe_deltat() */ </span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477840792"><b>swe_get_tid_acc</b></a>(void);
</span></p>
<p class=SourceText><span lang=EN-US>/* set tidal acceleration to be used in
swe_deltat() */</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk477840801"><b>swe_set_tid_acc</b></a>(double
t_acc);</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The Julian day number, you compute
from a birth date, will be </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Universal Time (UT,<2C> former GMT)</span></span><span lang=EN-US> and can be used to
compute the star time and the houses. However, for the planets and the other
factors, you have to convert UT to </span><a name="_Hlk477830987"><span
class=FileName><span lang=DA style='font-family:Verdana'>Ephemeris time </span></span></a><span
class=FileName><span lang=DA style='font-family:Verdana'>(ET): </span></span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479443"><span lang=EN-US>8.1 swe_deltat()</span></a></h3>
<p class=SourceText><span lang=EN-US>tjde = tjd + <b>swe_deltat</b>(tjd);<3B><><EFBFBD><EFBFBD> where <b>tjd</b> = Julian day in UT, <b>tjde</b>= in ET</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For precision fanatics: The value of
<b>delta t</b> depends on the tidal acceleration in the motion of the moon. Its
default value corresponds to the state-of-the-art JPL ephemeris (e.g.<2E> </span><span lang=FR>DE406, s. </span><span class=FileName><span lang=DA style='font-family:
Verdana'>swephexp.h</span></span><span lang=FR>). </span><span
lang=EN-US>If you use another JPL ephemeris, e.g.<2E> DE200, you may wish the tidal constant of DE200. This makes a
difference of 0.5 time seconds in 1900 and 4 seconds in 1800 (= 0.2<EFBFBD> in the
position of the sun). However, this effect is limited to the period 1620 -
~1997. To change the tidal acceleration, use the function </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479444"><span lang=EN-US>8.2 swe_set_tid_acc(), swe_get_tid_acc()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><b><span lang=EN-US>swe_set_tid_acc</span></b><span
lang=EN-US>(acceleration); </span><span lang=EN-US style='color:windowtext'><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //</span><span class=Inverse><span
lang=EN-US style='font-family:Arial'> Do this before calling deltat() !</span></span></p>
<p class=SourceText><span lang=EN-US style='color:windowtext'>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The values that </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>acceleration</span></span><span
lang=EN-US> can have are listed in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>swephexp.h.</span></span><span lang=EN-US> (e.g. </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>SE_TIDAL_200</span><span
lang=EN-US>, etc.)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To find out the built-in value of
the tidal acceleration, you can call </span></p>
<p class=SourceText><span lang=EN-US>acceleration = <b>swe_get_tidacc</b>(); </span></p>
<p class=Aufzhlungszeichent54 style='margin-left:0cm'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479445"><span
lang=EN-US>8.3. Future updates of Delta T and the file swe_deltat.txt</span></a></h3>
<p class=Aufzhlungszeichent54 style='margin-left:0cm'><span lang=EN-US>Delta T
values for future years can only be estimated. Strictly speaking, the Swiss
Ephemeris has to be updated every year after the new Delta T value for the past
year has been published by the IERS. We will do our best and hope to update the
Swiss Ephemeris every year. However, if the user does not want to wait for our
update or does not download a new version of the Swiss Ephemeris he can add new
Delta T values in the file swe_deltat.txt, which has to be located in the Swiss
Ephemeris ephemeris path.</span></p>
<p class=SourceText><span lang=EN-US># This file allows make new Delta T known
to the Swiss Ephemeris.</span></p>
<p class=SourceText><span lang=EN-US># Note, these values override the values
given in the internal Delta T</span></p>
<p class=SourceText><span lang=EN-US># table of the Swiss Ephemeris.</span></p>
<p class=SourceText><span lang=EN-US># Format: year and seconds (decimal) </span></p>
<p class=SourceText><span lang=EN-US>2003 64.47</span></p>
<p class=SourceText><span lang=EN-US>2004 65.80</span></p>
<p class=SourceText><span lang=EN-US>2005 66.00</span></p>
<p class=SourceText><span lang=EN-US>2006 67.00</span></p>
<p class=SourceText><span lang=EN-US>2007 68.00</span></p>
<p class=SourceText><span lang=EN-US>2008 68.00</span></p>
<p class=SourceText><span lang=EN-US>2009 69.00</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479446"><span
lang=EN-US>9. The function swe_set_topo() for topocentric planet positions</span></a></h2>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk477841944"><b>swe_set_topo</b></a>(double
</span><span lang=EN-US style='color:blue'>geolon</span><span lang=EN-US>,
double </span><span lang=EN-US style='color:blue'>geolat</span><span
lang=EN-US>, double </span><span lang=EN-US style='color:blue'>altitude</span><span
lang=EN-US>);</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* eastern longitude is positive,<2C> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> northern latitude is positive,<2C><><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US style='font-family:Verdana'>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function must be called before <a
name="_Hlk477841859">topocentric planet positions</a> for a certain birth place
can be computed. It tells Swiss Ephemeris, what geographic position is to be
used. Geographic longitude </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>geolon </span></span><span
lang=EN-US>and latitude </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>geolat</span></span><span
lang=EN-US> must be in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>degrees</span></span><span lang=EN-US>, the </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>altitude</span></span><span
lang=EN-US> above sea must be in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>meters</span></span><span lang=EN-US>. Neglecting
the altitude can result in an error of about </span><span class=FileName><span
lang=DA style='font-family:Verdana'>2 arc seconds</span></span><span
lang=EN-US> with the moon and at an altitude 3000 m. After calling </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_topo()</span></span><span
lang=EN-US>, add SEFLG_TOPOCTR to</span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
lang=EN-US> and call </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc()</span></span><span lang=EN-US> as with
an ordinary computation. E.g.: </span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><b><span lang=EN-US>swe_set_topo</span></b><span
lang=EN-US>(geo_lon, geo_lat, altitude_above_sea);</span></p>
<p class=SourceText><span lang=EN-US>iflag | = SEFLG_TOPOCTR;</span></p>
<p class=SourceText><span lang=DA>&nbsp;</span></p>
<p class=SourceText><span lang=DA>for (i = 0; i
&lt; NPLANETS; i++) {</span></p>
<p class=SourceText><span lang=DA><EFBFBD> iflgret = swe_calc( tjd, ipl, iflag, xp,
serr );</span></p>
<p class=SourceText><span lang=DA><EFBFBD> </span><span lang=PT-BR>printf(<28>%f\n<>, xp[0]);</span></p>
<p class=SourceText><span lang=EN-US>}<7D> </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The parameters set by </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_topo()</span></span><span
lang=EN-US> survive </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_close().</span></span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479447"><span
lang=FR>10. Sidereal mode functions</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479448"><span lang=FR>10.1.
swe_set_sid_mode()</span></a></h3>
<p class=SourceText><span lang=FR>void <a
name="_Hlk477842044"><b>swe_set_sid_mode</b></a> (int32 </span><span lang=FR
style='color:blue;'>sid_mode</span><span lang=FR>, double </span><span lang=FR style='color:blue;'>t0</span><span lang=FR>,
double </span><span lang=FR style='color:blue;'>ayan_t0</span><span
lang=FR>);</span></p>
<p class=Textkrper-Einzug><span lang=FR>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function can be used to specify
the mode for sidereal computations. </span></p>
<p class=Textkrper-Einzug><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc()</span></span><span lang=EN-US> or </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar()</span></span><span
lang=EN-US> has then to be called with the bit SEFLG_SIDEREAL. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US> is not called, the default </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha</span></span><span lang=EN-US>(Fagan/Bradley) is used. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If a predefined mode is wanted, the
variable </span><a name="_Hlk477842160"><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>sid_mode</span></span></a><span lang=EN-US>has to be set, while </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>t0</span></span><span
lang=EN-US> and </span><a name="_Hlk477842217"><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayan_t0</span></span></a><span
lang=EN-US> are not considered, i.e. can be 0. The predefined <a
name="_Hlk477860745">sidereal modes</a> are: </span></p>
<p class=MsoPlainText><span lang=ES>&nbsp;</span></p>
<p class=SourceText><span lang=ES>#define SE_SIDM_FAGAN_BRADLEY<45><59><EFBFBD> <20><><EFBFBD><EFBFBD> 0</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_LAHIRI<52><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 1</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_DELUCE<43><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 2</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_RAMAN<41><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 3</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_USHASHASHI<48><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_KRISHNAMURTI<54><49><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_DJWHAL_KHUL<55><4C><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 6</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_YUKTESHWAR<41><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 7</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_JN_BHASIN<49><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 8</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_BABYL_KUGLER1<52><31><EFBFBD> <20><><EFBFBD><EFBFBD> 9</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_BABYL_KUGLER2<52><32> <20><><EFBFBD><EFBFBD> 10</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_BABYL_KUGLER3<52><33> <20><><EFBFBD><EFBFBD> 11</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_BABYL_HUBER<45><52><EFBFBD> <20><><EFBFBD><EFBFBD> 12</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_BABYL_ETPSC<53><43><EFBFBD> <20><><EFBFBD><EFBFBD> 13</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_ALDEBARAN_15TAU<41><55><EFBFBD><EFBFBD> 14</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_HIPPARCHOS<4F><53><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 15</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_SASSANIAN<41><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 16</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_GALCENT_0SAG<41><47><EFBFBD> <20><><EFBFBD><EFBFBD> 17</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J2000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 18</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J1900<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 19</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_B1950<35><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_SURYASIDDHANTA <20><><EFBFBD><EFBFBD> 21</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_SURYASIDDHANTA_MSUN<55> 22</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_ARYABHATA<54><41><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 23</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_ARYABHATA_MSUN<55> <20><><EFBFBD><EFBFBD> 24</span></p>
<p class=SourceText><span lang=EN-US>#define
SE_SIDM_USER<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 255</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>For information about the sidereal
modes, read the chapter on sidereal calculations in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swisseph.doc.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>To define your own sidereal mode,
use SE_SIDM_USER (= 255) and set the reference date <b>(</b></span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>t0</span></span><b><span
lang=EN-US>)</span></b><span lang=EN-US> and the initial value of the</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha
(ayan_t0)</span></span><span lang=EN-US>.</span></p>
<p class=SourceText><span lang=FR>ayan_t0 =
tropical_position_t0 <20> sidereal_position_t0.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Without additional specifications,
the traditional method is used. The </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha</span></span><span
lang=EN-US> measured on the ecliptic of t0 is subtracted from tropical
positions referred to the ecliptic of date. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Note, this method will NOT provide
accurate results if you want coordinates referred to the ecliptic of one of the
following equinoxes:</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J2000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 18</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J1900<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 19</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_B1950<35><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 20</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>Instead,
you have to use a correct coordinate transformation as described in the
following:</span></p>
<p class=Textkrper-Einzug><span lang=EN-GB>&nbsp;</span></p>
<p class=Textkrper-Einzug><i><u><span
lang=EN-US>Special uses of the sidereal functions:</span></u></i></p>
<p class=Textkrper-Einzug><i><u><span
lang=EN-US>&nbsp;</span></u></i></p>
<p class=Textkrper-Einzug><i><span
lang=EN-US>a) correct transformation of ecliptic coordinates to the ecliptic of
a particular date</span></i></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If a correct transformation to the
ecliptic of <b>t0</b> is required the following bit can be added (<28>ored<65>) to
the value of the variable </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>sid_mode:</span></span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* for projection onto ecliptic of t0 */</span></p>
<p class=SourceText><span lang=FR>#define
SE_SIDBIT_ECL_T0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 256</span></p>
<p class=MsoBodyText><span lang=FR>E.g.:</span></p>
<p class=SourceText><b><span lang=FR>swe_set_sid_mode</span></b><span
lang=FR>(SE_SIDM_J2000 + SE_SIDBIT_ECL_T0, 0, 0);</span></p>
<p class=SourceText><span lang=DA>iflag |=
SEFLG_SIDEREAL;</span></p>
<p class=SourceText><span lang=DA>for (i = 0; i
&lt; NPLANETS; i++) {</span></p>
<p class=SourceText><span lang=DA><EFBFBD> iflgret = swe_calc(tjd, ipl, iflag, xp,
serr);</span></p>
<p class=SourceText><span lang=DA><EFBFBD> </span><span lang=PT-BR>printf(<28>%f\n<>, xp[0]);</span></p>
<p class=SourceText><span lang=EN-US>}<7D> </span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoPlainText><span lang=EN-US>This procedure is required for the
following sidereal modes, i.e. for transformation to the ecliptic of one of the
standard equinoxes:</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J2000<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 18</span></p>
<p class=SourceText><span lang=DA>#define SE_SIDM_J1900<30><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 19</span></p>
<p class=SourceText><span lang=IT>#define SE_SIDM_B1950<35><30><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20</span></p>
<p class=MsoPlainText><span lang=IT>&nbsp;</span></p>
<p class=Textkrper-Einzug><i><span
lang=EN-US>b) calculating precession-corrected transits</span></i></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_sidmode()</span></span><span
lang=EN-US> can also be used for calculating <20>precession-corrected transits<74>.
There are two methods, of which you have to choose the one that is more
appropriate for you:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>1. If you already have tropical
positions of a natal chart, you can proceed as follows:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=DA>iflgret <b>= swe_calc</b>(tjd_et_natal, SE_ECL_NUT, 0, x, serr);</span></p>
<p class=SourceText><span lang=DA>nut_long_nata = x[2];</span></p>
<p class=SourceText><b><span lang=DA>swe_set_sid_mode</span></b><span
lang=DA>( SE_SIDBIT_USER + SE_SIDBIT_ECL_T0,
tjd_et, nut_long_natal );</span></p>
<p class=Textkrper-Einzug><span lang=DA>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>where </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>tjd_et_natal</span></span><span
lang=EN-US> is the Julian day of the natal chart (Ephemeris time).</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>After this calculate the transits,
using the function swe_calc() with the sidereal bit:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=DA>iflag |=
SEFLG_SIDEREAL;</span></p>
<p class=SourceText><span lang=DA>iflgret =
swe_calc(tjd_et_transit, ipl_transit, iflag, xpt, serr);</span></p>
<p class=MsoSalutation><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>2. If you do not
have tropical natal positions yet, if you do not need them and are just
interested in transit times, you can have it simpler:</span></p>
<p class=SourceText><b><span lang=DA>swe_set_sid_mode</span></b><span
lang=DA>( SE_SIDBIT_USER + SE_SIDBIT_ECL_T0,
tjd_et, 0 );</span></p>
<p class=SourceText><span lang=DA>iflag |=
SEFLG_SIDEREAL;</span></p>
<p class=SourceText><span lang=DA>iflgret = <b>swe_calc</b>(tjd_et_natal, ipl_natal, iflag, xp, serr);</span></p>
<p class=SourceText><span lang=DA>iflgret = <b>swe_calc</b>(tjd_et_transit, ipl_transit, iflag, xpt, serr);</span></p>
<p class=MsoSalutation><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><span lang=DA>In this case, the
natal positions will be tropical but without nutation. Note that you should not
use them for other purposes.</span></p>
<p class=MsoNormal><span lang=DA>&nbsp;</span></p>
<p class=MsoNormal><i><span lang=DA>c) solar system rotation plane</span></i></p>
<p class=MsoNormal><i><span lang=DA>&nbsp;</span></i></p>
<p class=Textkrper-Einzug><span lang=EN-US>For sidereal positions referred to
the solar system rotation plane, use the flag </span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* for projection onto solar system
rotation plane */</span></p>
<p class=SourceText><span lang=EN-US>#define SE_SIDBIT_SSY_PLANE<4E><45><EFBFBD><EFBFBD> 512</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Note: the parameters set by </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US> survive calls of the function </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_close().</span></span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479449"><span lang=EN-US>10.2. swe_get_ayanamsa_ut() and
swe_get_ayanamsa()</span></a></h3>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477856452"><b>swe_get_ayanamsa_ut</b></a>(double
tjd_ut);</span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477856443"><b>swe_get_ayanamsa</b></a>(double
tjd_et);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_get_ayanamsa_ut()</span></span><span
lang=EN-US> was introduced with Swisseph Version 1.60 and expects Universal
Time instead of Ephemeris Time. (cf. </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc_ut()</span></span><span lang=EN-US> and </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>)</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The two functions compute the </span><a
name="_Hlk477842381"><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>ayanamsha</span></span></a><span
lang=EN-US>, i.e. the distance of the tropical vernal point from the sidereal
zero point of the zodiac. The</span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha</span></span><span
lang=EN-US> is used to compute sidereal planetary positions from tropical ones:</span></p>
<p class=SourceText><span lang=FR>pos_sid =
pos_trop <20> ayanamsha</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Before calling </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_get_ayanamsha()</span></span><span
lang=EN-US>, you have to set the sidereal mode with <a href="#_Hlk477842044"><span
style='font-family:Verdana'>swe_set_sid_mode</span></a>, unless you want the
default sidereal mode, which is the Fagan/Bradley</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ayanamsha.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479450"><span
lang=EN-US>11. The Ephemeris file related functions</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479451"><span lang=EN-US>11.1 swe_set_ephe_path()</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US>If the environment variable
SE_EPHE_PATH<EFBFBD> exists in the environment
where Swiss Ephemeris is used, its content is used to find the <a
name="_Hlk477844273">ephemeris files.</a> The variable can contain a directory
name, or a list of directory names separated by </span><span class=VarName><span
lang=EN-US style='font-size:14.0pt;font-family:"Times New Roman"'>;</span></span><span
lang=EN-US> (semicolon) on Windows or </span><span class=VarName><span
lang=EN-US style='font-size:14.0pt;font-family:"Times New Roman"'>:</span></span><span
lang=EN-US> (colon) on Unix. </span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477843944"><b>swe_set_ephe_path</b></a>(char
*path);</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Usually an application will want to
set its own ephemeris path by calling </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_set_ephe_path()</span></span><span
lang=EN-US>, e.g.</span></p>
<p class=SourceText><span lang=EN-US>swe_set_ephe_path(<28>C:\\SWEPH\\EPHE<48>);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The argument can be a single
directory name or a list of directories, which are then searched in sequence.
The argument of this call is ignored if the environment variable </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>SE_EPHE_PATH</span><span
lang=EN-US> exists and is not empty.<br>
I<a name="_Hlk477863958">f you want to make sure that your program overrides
any environment variable</a> setting, you can use </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>putenv()</span></span><span lang=EN-US> to
set it to an empty string. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><a name="_Hlk477864058"><span lang=EN-US>If the path</span></a><span
lang=EN-US> is longer than <b><span style='color:maroon'>256 bytes</span></b>, </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_ephe_path()</span></span><span
lang=EN-US> sets the path </span><span class=FileName><span lang=DA
style='font-family:Verdana'>\SWEPH\EPHE</span></span><span lang=EN-US> instead.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If no environment variable exists
and </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_ephe_path()</span></span><span
lang=EN-US> is never called, the built-in ephemeris path is used. On Windows it
is </span><span class=FileName><span lang=DA style='font-family:Verdana'><EFBFBD>\sweph\ephe<68></span></span><span
lang=EN-US> relative to the current working drive, on Unix it is </span><span
class=FileName><span lang=DA style='font-family:Verdana'>&quot;/users/ephe&quot;.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Asteroid ephemerides are looked for
in the subdirectories </span><span class=FileName><span lang=DA
style='font-family:Verdana'>ast0, ast1, ast2 .. ast9 </span></span><span
lang=EN-US>of the ephemeris directory and, if not found there, in the ephemeris
directory itself. Asteroids with numbers 0 <20> 999 are expected in directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>ast0</span></span><span
lang=EN-US>, those with numbers 1000 <20> 1999 in directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>ast1</span></span><span
lang=EN-US> etc. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The environment variable </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>SE_EPHE_PATH</span><span
lang=EN-US> is most convenient when a user has several applications installed
which all use the Swiss Ephemeris but would normally expect the ephemeris files
in different application-specific directories. The use can override this by
setting the environment variable, which forces all the different applications
to use the same ephemeris directory. This allows him to use only one set of
installed ephemeris files for all different applications. A developer should
accept this override feature and allow the sophisticated users to exploit it.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479452"><span lang=EN-US>11.2 swe_close()</span></a></h3>
<p class=SourceText><span lang=EN-US>/* close Swiss Ephemeris */</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk477844023"><b>swe_close</b></a>(void);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>At the end of your computations you
can release most resources (open files and allocated memory) used by the Swiss
Ephemeris DLL.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The following parameters survive a
call of </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc():</span></span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=FuncName><span lang=DA style='font-family:Symbol;'><EFBFBD><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>the ephemeris path set by </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_ephe_path() </span></span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
class=FuncName><span lang=DA style='font-family:Symbol;'><EFBFBD><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>the JPL file name set by</span><span
class=FuncName><span lang=DA style='font-family:Verdana'> swe_set_jpl_file()</span></span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the geographical location set by</span><span
class=FuncName><span lang=DA style='font-family:Verdana'> swe_set_topo()</span></span><span
lang=EN-US> for topocentric planetary positions</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the sidereal mode set by </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US> for sidereal planetary positions</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>As soon as you make a call to </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> or </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_fixstar()</span></span><span lang=EN-US>, the Swiss Ephemeris
re-opens again.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479453"><span lang=EN-US>11.3 swe_set_jpl_file()</span></a></h3>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* set name of JPL ephemeris file */</span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477844051"><b>swe_set_jpl_file</b></a>(char
*fname);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If you work with the JPL ephemeris,
SwissEph uses the default file name which is defined in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span><span
lang=EN-US> as SE_FNAME_DFT. Currently, it has the value </span><span
class=FileName><span lang=DA style='font-family:Verdana'><EFBFBD>de406.eph<70></span></span><span
lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If different JPL ephemeris file is
required, call the function </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_set_jpl_file()</span></span><span
lang=EN-US>to make the file name known to the software, e.g. </span></p>
<p class=SourceText><span lang=EN-US>swe_set_jpl_file(<28>de405.eph<70>);</span></p>
<p class=Textkrper-Einzug><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This file must reside in the
ephemeris path you are using for all your ephemeris files.</span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>If the file name is longer than 256 byte, </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_jpl_file()</span></span><span
lang=EN-US> cuts the file name to a length of 256 bytes. The error will become
visible after the first call of </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc()</span></span><span lang=EN-US>, when it
will return zero positions and an error message.</span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479454"><span lang=EN-US>11.4 swe_version()</span></a></h3>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* find out version number of your Swiss
Ephemeris version */</span></p>
<p class=SourceText><span lang=EN-US>char *<b>swe_version</b>(char *svers); </span></p>
<p class=SourceText><span lang=EN-US>/* svers is a string variable with
sufficient space to contain the version number (255 char) */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>The Function returns a pointer to the string
svers, i.e. to the version number of the Swiss Ephemeris that your software is
using.</span></p>
<p class=Aufzhlungszeichent53 style='margin-left:0cm;text-indent:0cm;'><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm;page-break-before:always'><a
name="_Toc354479455"><span lang=EN-US>12. House cusp calculation</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479456"><span lang=EN-US>12.1 swe_houses()</span></a></h3>
<p class=SourceText><span lang=EN-US>/* house cusps, ascendant and MC */ </span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477861239"><b>swe_houses</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US>double geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in degrees */</span></p>
<p class=SourceText><span lang=EN-US>double geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude, in degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>int hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, ascii code of one of the
letters PKORCAEVXHTBG */</span></p>
<p class=SourceText><span lang=EN-US>double *cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US>double *ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479457"><span lang=EN-US>12.2 swe_houses_armc()</span></a></h3>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477861854"><b>swe_houses_armc</b></a>(</span></p>
<p class=SourceText><span lang=EN-US>double armc, <20><> <20><><EFBFBD><EFBFBD> /* ARMC */</span></p>
<p class=SourceText><span lang=EN-US>double geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in degrees */</span></p>
<p class=SourceText><span lang=EN-US>double eps, <20><><EFBFBD><EFBFBD> /* ecliptic obliquity, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US>int hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, ascii code of one of the
letters PKORCAEVXHTBG */</span></p>
<p class=SourceText><span lang=EN-US>double *cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US>double *ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479458"><span lang=EN-US>12.3 swe_houses_ex()</span></a></h3>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* extended function; to compute tropical
or sidereal positions */</span></p>
<p class=SourceText><span lang=EN-US>int <a name="_Hlk477861861"><b>swe_houses_ex</b></a>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32
iflag, <20><><EFBFBD><EFBFBD> /*
0 or SEFLG_SIDEREAL or SEFLG_RADIANS */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude, in
degrees</span></p>
<p class=SourceText><span lang=EN-US style='font-family:"Courier New"'><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US><EFBFBD>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, ascii code of one of the letters PKORCAEVXHTBG
*/</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US>double *ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */ </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses()</span></span><span
lang=EN-US> is most comfortable, if you need the houses for a given date and
geographic position. Sometimes, however, you will want to compute houses from
an ARMC, e.g. with the composite horoscope which has no date, only the
composite ARMC of two natal ARMCs. In such cases, you can use the function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses_armc()</span></span><span
lang=EN-US>. To <a name="_Hlk477862144">compute the composite </a><a
name="_Hlk477862235">ecliptic obliquity</a></span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>eps</span></span><span
lang=EN-US>, you will have to call </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>sweph_calc()</span></span><span
lang=EN-US>with </span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>ipl = </span></span><span class=FuncName><span
lang=DA style='font-family:Verdana'>SE_ECL_NUT</span></span><span lang=EN-US>
for both birth dates and calculate the average of both</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>eps.</span></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Note that</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>tjd_ut</span></span><span
lang=EN-US> must be </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Universal Time</span></span><span lang=EN-US>, whereas planets are
computed from </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Ephemeris Time</span></span></p>
<p class=Textkrper-Einzug style='text-indent:35.3pt'><span lang=FR
style='font-size:9.0pt;font-family:Verdana;color:navy;'>tjd_et
= tjd_ut + delta_t(tjd_ut). </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Also note that the array </span><a
name="_Hlk477862337"><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>cusps</span></span></a><span lang=EN-US>
must provide space for <b><span style='color:maroon'>13 doubles </span></b>(declare
as <b><span style='color:maroon'>cusp[13]</span></b>), otherwise you risk a
program crash. With house system <20>G<EFBFBD> (Gauquelin sector cusps), declare it as <b><span
style='color:maroon'>cusp[37]</span></b>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Note: With house system <20>G<EFBFBD>, the
cusp numbering is in clockwise direction.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD></span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The extended house function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses_ex()</span></span><span
lang=EN-US> does exactly the same calculations as </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_houses()</span></span><span lang=EN-US>.
The difference is that </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_houses_ex()</span></span><span lang=EN-US> has
a parameter </span><span class=VarName><span lang=EN-US style='font-size:12.0pt;
font-family:"Times New Roman"'>iflag</span></span><span lang=EN-US>, which can
be set to </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>SEFLG_SIDEREAL</span><span lang=EN-US>, if<69> </span><span class=FileName><span lang=DA
style='font-family:Verdana'>sidereal</span></span><span lang=EN-US>house
positions are wanted. Before calling </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_houses_ex()</span></span><span lang=EN-US> for
sidereal house positions, the sidereal mode can be set by calling the function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_sid_mode()</span></span><span
lang=EN-US>. If this is not done, the default sidereal mode, i.e. the
Fagan/Bradley </span><span class=FileName><span lang=DA style='font-family:
Verdana'>ayanamsha,</span></span><span lang=EN-US> will be used. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There is no extended function for </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses_armc()</span></span><span
lang=EN-US>. Therefore, if you want to <a name="_Hlk477862421">compute such
obscure things as sidereal composite house cusps</a>, the procedure will be
more complicated: </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* sidereal composite house computation;
with true epsilon, but without nutation in longitude */</span></p>
<p class=SourceText><b><span lang=FR>swe_calc</span></b><span
lang=FR>(tjd_et1, SE_ECL_NUT, 0, x1, serr);</span></p>
<p class=SourceText><b><span lang=FR>swe_calc</span></b><span
lang=FR>(tjd_et2, SE_ECL_NUT, 0, x2, serr);</span></p>
<p class=SourceText><span lang=EN-US>armc1 = <b>swe_sidtime</b>(tjd_ut1) * 15;<3B><> </span></p>
<p class=SourceText><span lang=EN-US>armc2 = <b>swe_sidtime</b>(tjd_ut2) * 15;</span></p>
<p class=SourceText><span lang=EN-US>armc_comp = <b>composite</b>(armc1,
armc2); /* this is a function created by the user */</span></p>
<p class=SourceText><span lang=EN-US>eps_comp = (x1[0] + x2[0]) / 2;</span></p>
<p class=SourceText><span lang=FR>nut_comp =
(x1[2] + x2[2]) / 2;</span></p>
<p class=SourceText><span lang=FR>tjd_comp =
(tjd_et1 + tjd_et2) / 2;</span></p>
<p class=SourceText><span lang=EN-US>aya = <b>swe_get_ayanamsa</b>(tjd_comp);</span></p>
<p class=SourceText><b><span lang=EN-US>swe_houses_armc</span></b><span
lang=EN-US>(armc_comp, geolat, eps_comp, hsys, cusps, ascmc);</span></p>
<p class=SourceText><span lang=DA>for (i = 1; i
&lt;= 12; i++)</span></p>
<p class=SourceText><span lang=DA><EFBFBD> cusp[i] = <b>swe_degnorm</b>(cusp[i] <20> aya <20>
nut_comp);</span></p>
<p class=SourceText><span lang=DA>for (i = 0; i
&lt; 10; i++)</span></p>
<p class=SourceText><span lang=DA><EFBFBD> ascmc[i] = <b>swe_degnorm</b>(asc_mc[i] <20>
aya <20> nut_comp);</span></p>
<p class=Textkrper-Einzug><span lang=DA>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Output and input parameters.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The first array element <b>cusps[0]</b>
is always 0, the twelve houses follow in <b>cusps[1] .. [12]</b>, the reason
being that arrays in C begin with the index 0. The indices are therefore: </span></p>
<p class=SourceText><a name="_Hlk477862529"><span lang=EN-US>cusps[0]</span></a><span
lang=EN-US> = 0</span></p>
<p class=SourceText><span lang=EN-US>cusps[1] = house 1</span></p>
<p class=SourceText><span lang=EN-US>cusps[2] = house 2</span></p>
<p class=MsoNormal><span lang=EN-US>etc.</span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>In the array </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>ascmc</span></span><b><span
lang=EN-US>,</span></b><span lang=EN-US> the function returns the following
values: </span></p>
<p class=SourceText><a name="_Hlk477862569"><span lang=EN-US>ascmc[0]</span></a><span
lang=EN-US> = <20><><EFBFBD><EFBFBD> Ascendant</span></p>
<p class=SourceText><span lang=EN-US>ascmc[1] =<3D><><EFBFBD><EFBFBD> MC</span></p>
<p class=SourceText><span lang=EN-US>ascmc[2] =<3D><><EFBFBD><EFBFBD> ARMC</span></p>
<p class=SourceText><span lang=EN-US>ascmc[3] =<3D><><EFBFBD><EFBFBD> Vertex</span></p>
<p class=SourceText><span lang=IT>ascmc[4] =<3D><><EFBFBD><EFBFBD> &quot;equatorial ascendant&quot;</span></p>
<p class=SourceText><span lang=IT>ascmc[5] =<3D><><EFBFBD><EFBFBD> &quot;co-ascendant&quot; (Walter Koch)</span></p>
<p class=SourceText><span lang=IT>ascmc[6] =<3D><><EFBFBD><EFBFBD> &quot;co-ascendant&quot; (Michael Munkasey)</span></p>
<p class=SourceText><span lang=IT>ascmc[7] =<3D><><EFBFBD><EFBFBD> &quot;polar ascendant&quot; (M. Munkasey)</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=IT>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>The following defines can be used to find these
values:</span></p>
<p class=SourceText><span lang=IT>#define SE_ASC<53><43><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 0</span></p>
<p class=SourceText><span lang=IT>#define SE_MC<4D> <20><><EFBFBD><EFBFBD> 1</span></p>
<p class=SourceText><span lang=IT>#define SE_ARMC<4D> <20><><EFBFBD><EFBFBD> 2</span></p>
<p class=SourceText><span lang=IT>#define
SE_VERTEX<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 3</span></p>
<p class=SourceText><span lang=IT>#define
SE_EQUASC<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 4<><34><EFBFBD><EFBFBD> /* &quot;equatorial ascendant&quot; */</span></p>
<p class=SourceText><span lang=IT>#define
SE_COASC1<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5<><35><EFBFBD><EFBFBD> /*
&quot;co-ascendant&quot; (W. Koch) */</span></p>
<p class=SourceText><span lang=IT>#define
SE_COASC2<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 6<><36><EFBFBD><EFBFBD> /*
&quot;co-ascendant&quot; (M. Munkasey) */</span></p>
<p class=SourceText><span lang=IT>#define
SE_POLASC<EFBFBD> <20><><EFBFBD><EFBFBD> 7<><37><EFBFBD><EFBFBD> /* &quot;polar
ascendant&quot; (M. Munkasey) */</span></p>
<p class=SourceText><span lang=IT>#define
SE_NASCMC<EFBFBD> <20><><EFBFBD><EFBFBD> 8</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=IT>&nbsp;</span></p>
<p class=MsoNormal><span class=VarName><span lang=EN-US style='font-size:12.0pt;
font-family:"Times New Roman"'>ascmc</span></span><span
lang=EN-US>must be an array of <b><span style='color:maroon'>10 doubles</span></b>.
</span><span class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:
"Times New Roman"'>ascmc[8... 9]</span></span><span lang=EN-US> are 0 and may
be used for additional points in future releases.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The following house systems are
implemented so far</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;'><a
name="_Hlk477862719"><span lang=EN-US>hsys</span></a><span lang=EN-US> = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>P<EFBFBD><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Placidus</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD> Koch</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD> Porphyrius</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD> Regiomontanus</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD> Campanus</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>A<EFBFBD> or <20>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD> Equal (cusp 1 is Ascendant)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>V<EFBFBD><56><EFBFBD><EFBFBD><EFBFBD> Vehlow
equal (Asc. in middle of house 1)</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD> Whole sign </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>X<EFBFBD><58><EFBFBD><EFBFBD><EFBFBD> axial
rotation system / meridian system / zariel</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>H<EFBFBD><48><EFBFBD><EFBFBD><EFBFBD> azimuthal
or horizontal system</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>T<EFBFBD><54><EFBFBD><EFBFBD><EFBFBD> Polich/Page
(<28>topocentric<69> system)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=IT><EFBFBD>B<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Alcabitus</span></p>
<p class=SourceText><span lang=IT><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD> Morinus</span></p>
<p class=SourceText><span lang=IT><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=FR><3E>U<EFBFBD><55><EFBFBD><EFBFBD><EFBFBD> Krusinski-Pisa</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>G<EFBFBD><47><EFBFBD><EFBFBD><EFBFBD> Gauquelin sectors</span></p>
<p class=Textkrper-Einzug><span lang=FR>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Placidus and Koch <a
name="_Hlk477864194">house cusps <b><span style='color:maroon'>cannot be
computed beyond the polar circle</span></b></a>. In such cases,</span><span
class=FuncName><span lang=DA style='font-family:Verdana'> swe_houses() </span></span><span
lang=EN-US>switches to Porphyry houses (each quadrant is divided into three
equal parts) and returns the error code ERR. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The <a name="_Hlk477861184"><b>Vertex</b></a>
is the point on the ecliptic that is located in precise </span><span
class=FileName><span lang=DA style='font-family:Verdana'>western</span></span><span
lang=EN-US> direction. The opposition of the <b>Vertex </b>is the <b>Antivertex,</b>
the ecliptic east point. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479459"><span
lang=EN-US>13. The sign of geographical longitudes in Swisseph functions</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>There is a disagreement between </span><span
class=FileName><span lang=DA style='font-family:Verdana'>American</span></span><span
lang=EN-US> and </span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>European</span></span><span lang=EN-US>
programmers whether eastern or western geographical longitudes ought to be
considered positive. Americans prefer to have West longitudes positive,
Europeans prefer the older tradition that considers East longitudes as positive
and West longitudes as negative. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Astronomical Almanac</span></span><span
lang=EN-US> still follows the European pattern. It gives the geographical
coordinates of observatories in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>&quot;East longitude&quot;</span></span><span
lang=EN-US>.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The Swiss Ephemeris also follows the
</span><span class=FileName><span lang=DA style='font-family:Verdana'>European
style</span></span><span lang=EN-US>. All Swiss Ephemeris functions that use
geographical coordinates consider <b>positive geographical longitudes as East</b>and <b>negative ones as West</b>. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>E.g. </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>87w39 = -87.65<EFBFBD></span><span
lang=EN-US> (Chicago IL/USA) and </span><span lang=EN-US style='font-size:9.0pt;
font-family:Verdana;color:navy'>8e33 = +8.55<EFBFBD></span><span lang=EN-US> (Zurich,
Switzerland).</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There is no such controversy about
northern and southern geographical latitudes. North is always positive and
south is negative.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479460"><span
lang=EN-US>14. Getting the house position of a planet with swe_house_pos()</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>To compute the house position of a
given body for a given ARMC, you may use the </span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477862955"><b>swe_house_pos</b></a><b>(</b></span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
armc, <20><> <20><><EFBFBD><EFBFBD> /*
ARMC */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps, <20><><EFBFBD><EFBFBD> /*
ecliptic obliquity, in degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*xpin, <20><><EFBFBD><EFBFBD> /* array of 2 doubles: ecl.
longitude and latitude of the planet */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return area for error
or warning message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The variables </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>armc,
geolat, eps</span></span><b><span lang=EN-US>,</span></b><span lang=EN-US> and </span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>xpin[0]</span></span><span lang=EN-US>and </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>xpin[1]</span></span><span lang=EN-US>(ecliptic longitude and latitude of the
planet) must be in degrees. </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>serr</span></span><span
lang=EN-US> must, as usually, point to a character array of 256 byte. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The function returns a value between
1.0 and 12.999999, indicating in which house a planet is and how far from its
cusp it is. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>With house system <20>G<EFBFBD> (Gauquelin
sectors), a value between 1.0 and 36.9999999 is returned. Note that, while all
other house systems number house cusps in counterclockwise direction, Gauquelin
sectors are numbered in clockwise direction. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>With </span><a name="_Hlk477864273"><span
class=FileName><span lang=DA style='font-family:Verdana'>Koch</span></span><span
lang=EN-US> houses</span></a><span lang=EN-US>, the function sometimes </span><span
class=FileName><span lang=DA style='font-family:Verdana'>returns 0</span></span><span
lang=EN-US>, if the computation was not possible. This happens most often in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>polar regions</span></span><span
lang=EN-US>, but it can happen at latitudes <b><span style='color:maroon'>below
66<EFBFBD>33<EFBFBD></span></b> as well, e.g. if a body has a high declination and falls
within the circumpolar sky. With circumpolar fixed stars (or asteroids) a Koch
house position may be impossible at any geographic location except on the
equator.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>The user must decide how to deal
with this situation.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>You can use the house positions
returned by this function for house horoscopes (or <20>mundane<6E> positions). For
this, you have to transform it into a value between 0 and 360 degrees. Subtract
1 from the house number and multiply it with 30, or </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>mund_pos = (hpos <20> 1) *
30;</span></p>
<p class=MsoPlainText><span lang=ES>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>You will realize that house
positions computed like this, e.g. for the Koch houses, will not agree exactly
with the ones that you get applying the Huber <20>hand calculation<6F> method. If you
want a better agreement, set the ecliptic latitude </span><span class=VarName><span
lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>xpin[1]= 0</span></span><i><span
lang=EN-US>;</span></i><span lang=EN-US>. Remaining differences result from the
fact that Huber<65>s hand calculation is a simplification, whereas our computation
is geometrically accurate.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function requires </span><span
class=FileName><span lang=DA style='font-family:Verdana'>TROPICAL</span></span><span
lang=EN-US> positions in</span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>xpin</span></span><span
lang=EN-US>. </span><span class=FileName><span lang=DA style='font-family:Verdana'>SIDEREAL</span></span><span
lang=EN-US> house positions are identical to tropical ones in the following
cases:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>If the traditional method is used to
compute sidereal planets (</span><span lang=EN-US style='font-size:9.0pt;
font-family:Verdana;color:navy'>sid_pos = trop_pos <20> ayanamsha</span><span
lang=EN-US>). Here the function </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_house_pos() </span></span><span lang=EN-US>works
for all house systems.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>If a non-traditional method
(projection to the ecliptic of t0 or to the solar system rotation plane) is
used and the definition of the house system does not depend on the ecliptic.
This is the case with </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Campanus, Regiomontanus, Placidus, Azimuth</span></span><span
lang=EN-US> houses</span><span class=FileName><span lang=DA style='font-family:
Verdana'>, axial rotation</span></span><span lang=EN-US> houses. This is NOT
the case with </span><span class=FileName><span lang=DA style='font-family:
Verdana'>equal houses, Porphyry and Koch houses</span></span><span lang=EN-US>.
You have to compute equal and Porphyry house positions on your own. <a
name="_Hlk477864373"><span class=Inverse>We recommend to avoid Koch</span></a>
houses here. Sidereal Koch houses make no sense with these sidereal algorithms.
</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Alcabitus is not yet supported in
release 1.61.01</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479461"><span
lang=EN-US>14.1. Calculating the Gauquelin sector position of a planet with
swe_house_pos() or swe_gauquelin_sector()</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>For general information on Gauquelin
sectors, read chapter 6.5 in documentation file swisseph.doc.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There are two functions that can be
used to calculate Gauquelin sectors: </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>swe_house_pos. Full details about this
function are presented in the previous section. To calculate Gauquelin sectors
the parameter hsys must be set to 'G' (Gauquelin sectors). This function will
then return the sector position as a value between 1.0 and 36.9999999. Note
that Gauquelin sectors are numbered in clockwise direction, unlike all other
house systems. </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>swe_gauquelin_sector - detailed below.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>Function
swe_gauquelin_sector() is declared as follows:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_gauquelin_sector(</b></span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet, or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText><span lang=EN-US>int32 iflag, <20><><EFBFBD><EFBFBD> /* flag for ephemeris and SEFLG_TOPOCTR */</span></p>
<p class=SourceText><span lang=EN-US>int32 imeth, <20><><EFBFBD><EFBFBD> /* method: 0 = with lat., 1 = without lat., </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 = from rise/set, 3 = from rise/set with refraction
*/</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* geograph. long., lat., height of observer
*/</span></p>
<p class=SourceText><span lang=EN-US>double atpress,<2C> <20><><EFBFBD><EFBFBD> /* atmospheric
pressure, only useful with imeth=3; </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> * if 0, default = 1013.25 mbar is used*/</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C> <20><><EFBFBD><EFBFBD> /* atmospheric
temperature in degrees Celsius, only useful with imeth=3 */</span></p>
<p class=SourceText><span lang=EN-US>double *dgsect,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD> /* return address for
gauquelin sector position */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return address for
error message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>This function returns OK or ERR
(-1). It returns an error in a number of cases, for example circumpolar bodies
with imeth=2. As with other SE functions, if there is an error, an error
message is written to serr. dgsect is used to obtain the Gauquelin sector
sector position as a value between 1.0 and 36.9999999. Gauquelin sectors are
numbered in clockwise direction.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>There are six methods of computing
the Gauquelin sector position of a planet:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>1. Sector positions from ecliptical
longitude AND latitude:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
There are two ways of doing this: </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_house_pos() with hsys = 'G',
xpin[0] = ecliptical longitude of planet, and xpin[1] = ecliptical </span></p>
<p class=Textkrper-Einzug style='margin-left:14.2pt;text-indent:21.1pt'><span
lang=EN-US>latitude. This function returns the sector position as a value
between 1.0 and 36.9999999.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with
imeth=0. This is less efficient than swe_house_pos because it </span></p>
<p class=Textkrper-Einzug style='margin-left:14.2pt;'><span
lang=EN-US>recalculates the whole planet whereas swe_house_pos() has an input
array for ecliptical positions </span></p>
<p class=Textkrper-Einzug style='margin-left:14.2pt;'><span
lang=EN-US>calculated before.</span></p>
<p class=Textkrper-Einzug style='margin-left:3.8pt;text-indent:-3.8pt'><span
lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>2. Sector positions computed from
ecliptical longitudes without ecliptical latitudes:</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
There are two ways of doing this: </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_house_pos() with hsys = 'G',
xpin[0] = ecl. longitude of planet, and xpin[1] = 0. This function </span></p>
<p class=Textkrper-Einzug style='margin-left:14.2pt;text-indent:21.1pt'><span
lang=EN-US>returns the sector position as a value between 1.0 and 36.9999999. </span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with
imeth=1. Again this is less efficient than swe_house_pos.</span></p>
<p class=Textkrper-Einzug style='margin-left:3.8pt;text-indent:-3.8pt'><span
lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>3. Sector positions of a planet from
rising and setting times of planets.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
The rising and setting of the disk center is used:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with
imeth=2. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>4. Sector positions of a planet from
rising and setting times of planets, taking into account atmospheric
refraction. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
The rising and setting of the disk center is used:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with imeth
= 3. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>5. Sector positions of a planet from
rising and setting times of planets.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
The rising and setting of the disk edge is used:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with
imeth=4.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>6. Sector positions of a planet from
rising and setting times of planets, taking into account atmospheric
refraction.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> The rising and setting
of the disk edge is used:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-3.8pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Call swe_gauquelin_sector() with imeth
= 5.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479462"><span
lang=EN-US>15. Sidereal time with swe_sidtime() and swe_sidtime0()</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>The </span><span class=FileName><span
lang=DA style='font-family:Verdana'>sidereal time</span></span><span
lang=EN-US> is computed inside the </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>houses() </span></span><span lang=EN-US>function
and returned via the variable </span><a name="_Hlk477864589"><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>armc</span></span></a><span
lang=EN-US> which measures sidereal time in degrees. To get sidereal time in
hours, divide </span><span class=VarName><span lang=EN-US style='font-size:
12.0pt;font-family:"Times New Roman"'>armc</span></span><span
lang=EN-US>by 15. </span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If the sidereal time is required
separately from house calculation, two functions are available. The second
version requires obliquity and nutation to be given in the function call, the
first function computes them internally. Both return sidereal time at the </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Greenwich Meridian</span></span><span
lang=EN-US>, measured in hours.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477864660"><b>swe_sidtime</b></a>(double
tjd_ut); <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk477864667"><b>swe_sidtime0</b></a>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps, <20><><EFBFBD><EFBFBD> /*
obliquity of ecliptic, in degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
nut);<3B><><EFBFBD><EFBFBD> /*
nutation in longitude, in degrees */</span></p>
<span lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy;'><br clear=all
style='page-break-before:always'>
</span>
<p class=SourceText style='margin-left:0cm;text-indent:0cm'>&nbsp;</p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479463"><span
lang=EN-US>16. Summary of SWISSEPH functions</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479464"><span lang=EN-US>16.1. Calculation of planets and stars</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479465"><span lang=EN-US>Planets,
moon, asteroids, lunar nodes, apogees, fictitious bodies</span></a></h4>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>long <b>swe_calc_ut</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut,<2C><><EFBFBD><EFBFBD> /* Julian day number,
Universal Time */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>int ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> long iflag, <20><><EFBFBD><EFBFBD> /* flag bits */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> </span><span
lang=EN-US>double *xx,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* target address for 6 position values:
longitude, latitude, distance,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>long. speed, lat. speed, dist. speed */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>char *serr);<3B><><EFBFBD><EFBFBD> /* 256 bytes for error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>long <b>swe_calc</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_et, <20><><EFBFBD><EFBFBD> /* Julian day number,
Ephemeris Time */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>int ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> long iflag, <20><><EFBFBD><EFBFBD> /* flag bits */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>double *xx,<2C><><EFBFBD><EFBFBD> /* target address for 6 position values: longitude,
latitude, distance,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> long. speed, lat. speed, dist. speed */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>char *serr);<3B><><EFBFBD><EFBFBD> /* 256 bytes for error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479466"><span lang=EN-US>Fixed
stars</span></a></h4>
<p class=SourceText><span lang=EN-US>long <b>swe_fixstar_ut</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char
*star,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD> /*
star name, returned star name 40 bytes */ </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, Universal
Time */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>long iflag, <20><><EFBFBD><EFBFBD> /* flag bits */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>double
*xx,<2C><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>/* target address for 6
position values: longitude, latitude, distance,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> long.
speed, lat. speed, dist. speed */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>char *serr);<3B><><EFBFBD><EFBFBD> /* 256 bytes for error string */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>long <b>swe_fixstar</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char
*star,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD> /*
star name, returned star name 40 bytes */ </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_et, <20><><EFBFBD><EFBFBD> /* Julian day number,
Ephemeris Time */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>long iflag, <20><><EFBFBD><EFBFBD> /* flag bits */</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>double
*xx,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* target address for 6 position values: longitude, latitude,
distance,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>long. speed, lat. speed, dist. speed */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=DA>char *serr);<3B><><EFBFBD><EFBFBD> /* 256 bytes for error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479467"><span lang=EN-US>Set the
geographic location for topocentric planet computation</span></a></h4>
<p class=SourceText><span lang=EN-US>void <b>swe_set_topo</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
altitude);<3B><><EFBFBD><EFBFBD> /* altitude above sea */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479468"><span lang=EN-US>Set the
sidereal mode for sidereal planet positions</span></a></h4>
<p class=SourceText><span lang=EN-US>void <b>swe_set_sid_mode</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=FR>int32 sid_mode,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double t0,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* reference epoch */</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double ayan_t0);<3B><><EFBFBD><EFBFBD> /* initial ayanamsha at t0 */</span></p>
<p class=SourceText><span lang=FR>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* to get the ayanamsha for a date */</span></p>
<p class=SourceText><span lang=FR>double <b>swe_get_ayanamsa</b>(double
tjd_et);</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479469"><span lang=EN-US>16.2 Eclipses and planetary phenomena</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479470"><span lang=EN-US>Find the
next eclipse for a given geographic position</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_sol_eclipse_when_loc</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height */</span></p>
<p class=SourceText><span lang=EN-US style='font-family:"Courier New"'><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US><EFBFBD>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *tret, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 10
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479471"><span lang=EN-US>Find the
next eclipse globally</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_sol_eclipse_when_glob</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>int32 ifltype, <20><><EFBFBD><EFBFBD> /* eclipse type wanted:
SE_ECL_TOTAL etc. */</span></p>
<p class=SourceText><span lang=EN-US>double *tret, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 10
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479472"><span lang=EN-US>Compute
the attributes of a solar eclipse for a given tjd, geographic long., latit. and
height</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_sol_eclipse_how</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos,<2C><> <20><><EFBFBD><EFBFBD> /* geogr. longitude,
latitude, height */</span></p>
<p class=SourceText><span lang=EN-US style='font-family:"Courier New"'><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US><EFBFBD>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479473"><span lang=EN-US>Find out
the geographic position where a central eclipse is central or a non-central one
maximal</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_sol_eclipse_where</b> (</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos,<2C> <20><><EFBFBD><EFBFBD> /* return array, 2
doubles, geo. long. and lat. */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>*
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>or </span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_where </b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos,<2C><><EFBFBD><EFBFBD> /* return array, 2 doubles, geo. long. and lat.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479474"><span lang=EN-US>Find the
next occultation of a body by the moon for a given geographic position</span></a></h4>
<p class=SourceText><span lang=EN-US>(can also be used for solar eclipses )</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_when_loc</b>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search,
Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
western longitude is negative,<2C>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>double
*attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL
backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search
*/</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479475"><span lang=EN-US>Find the
next occultation globally</span></a></h4>
<p class=SourceText><span lang=EN-US>(can also be used for solar eclipses )</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_occult_when_glob</b>(</span></p>
<p class=SourceText><span lang=EN-US>double
tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search,
Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ipl, <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=DA>char* starname, <20><><EFBFBD><EFBFBD> /*
star name, must be NULL or <20><> if not a star */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=DA>int32 ifltype, <20><><EFBFBD><EFBFBD> /*
eclipse type wanted */</span></p>
<p class=SourceText><span lang=EN-US>double
*geopos, <20><><EFBFBD><EFBFBD> /* 3 doubles for geo. lon,
lat, height eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
western longitude is negative,<2C>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double
*tret, <20><><EFBFBD><EFBFBD> /* return array, 10 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>double
*attr, <20><><EFBFBD><EFBFBD> /* return array, 20 doubles,
see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL
backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search
*/</span></p>
<p class=SourceText><span lang=EN-US>char
*serr);<3B><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479476"><span lang=EN-US>Find the
next lunar eclipse</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_eclipse_when</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_start, <20><><EFBFBD><EFBFBD> /* start date for search, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>int32 ifltype, <20><><EFBFBD><EFBFBD> /* eclipse type wanted:
SE_ECL_TOTAL etc. */</span></p>
<p class=SourceText><span lang=EN-US>double *tret, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 10
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>AS_BOOL backward, <20><><EFBFBD><EFBFBD> /* TRUE, if backward search */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479477"><span lang=EN-US>Compute
the attributes of a lunar eclipse at a given time</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_lun_eclipse_how</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time, Jul. day UT */</span></p>
<p class=SourceText><span lang=DA>int32 ifl, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* input array, geopos,
geolon, geoheight */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479478"><span lang=EN-US>Compute
risings, settings and meridian transits of a body</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_rise_trans</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText>int32 epheflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</p>
<p class=SourceText><span lang=EN-US>int32 rsmi,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* integer specifying
that rise, set, or one of the two meridian transits is</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>
wanted. see definition below */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing geograph. long., lat.,
height of observer */</span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar/hPa */</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C><><EFBFBD><EFBFBD> /* atmospheric temperature in deg. C */</span></p>
<p class=SourceText><span lang=EN-US>double *tret,<2C><><EFBFBD><EFBFBD> /* return address (double) for rise time etc. */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B><><EFBFBD><EFBFBD> /* return address for error message */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int32 <b>swe_rise_trans_true_hor</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText>int32 epheflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</p>
<p class=SourceText><span lang=EN-US>int32 rsmi,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* integer specifying
that rise, set, orone of the two meridian transits is</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>wanted. see definition below */</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* geograph. long., lat., height of observer
*/</span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar/hPa */</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C><><EFBFBD><EFBFBD> /* atmospheric temperature in deg. C */</span></p>
<p class=SourceText><span lang=EN-US>double horhgt,<2C><><EFBFBD><EFBFBD> /* height of local horizon in deg at the point where the body
rises or sets*/</span></p>
<p class=SourceText><span lang=EN-US>double *tret,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return address
(double) for rise time etc. */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return address for
error message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479479"><span lang=EN-US>Compute
planetary phenomena</span></a></h4>
<p class=SourceText><span lang=EN-US>int32 <b>swe_pheno_ut</b>(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* time Jul. Day UT */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=DA>int32 iflag, <20><><EFBFBD><EFBFBD> /*
ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=SourceText><span lang=EN-US>int32 swe_pheno(</span></p>
<p class=SourceText><span lang=EN-US>double tjd_et, <20><><EFBFBD><EFBFBD> /* time Jul. Day ET */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number */</span></p>
<p class=SourceText><span lang=EN-US>int32 iflag, <20><><EFBFBD><EFBFBD> /* ephemeris flag */</span></p>
<p class=SourceText><span lang=EN-US>double *attr, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* return array, 20
doubles, see below */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return error string */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_azalt</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=FR>double tjd_ut,<2C><><EFBFBD><EFBFBD> /* UT */</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=PT-BR>int32 calc_flag,<2C><><EFBFBD><EFBFBD> /* SE_ECL2HOR or SE_EQU2HOR */</span></p>
<p class=SourceText><span lang=PT-BR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>double *geopos,<2C><><EFBFBD><EFBFBD> /* array of 3 doubles: geogr. long., lat.,
height */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>double atpress,<2C><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar (hPa) */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double attemp,<2C><><EFBFBD><EFBFBD> /* atmospheric
temperature in degrees Celsius */</span></p>
<p class=SourceText style='margin-left:139.5pt;text-indent:-110.7pt'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double *xin, /* array of 3 doubles: position of body in
either<EFBFBD> ecliptical or equatorial
coordinates,<2C> depending on calc_flag */</span></p>
<p class=SourceText style='margin-left:139.5pt;text-indent:-110.7pt'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double *xaz); /* return array of 3 doubles, containing
azimuth, true altitude, apparent altitude */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_azalt_rev</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=FR>double tjd_ut,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 calc_flag,<2C><><EFBFBD><EFBFBD> /* either SE_HOR2ECL or SE_HOR2EQU */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *geopos,<2C><><EFBFBD><EFBFBD> /* array of 3
doubles for geograph. pos. of observer */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double *xin, <20><><EFBFBD><EFBFBD> /* array of 2 doubles for azimuth and true
altitude of planet */</span></p>
<p class=SourceText style='margin-left:139.5pt;text-indent:-110.7pt'><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD> double *xout); /* return array of 2 doubles for either
ecliptic or equatorial coordinates, depending on calc_flag */</span></p>
<p class=SourceText><span lang=EN-US>double swe_refrac(</span></p>
<p class=SourceText><span lang=EN-US>double inalt, </span></p>
<p class=SourceText><span lang=EN-US>double atpress, <20><><EFBFBD><EFBFBD> /* atmospheric pressure in mbar (hPa) */</span></p>
<p class=SourceText><span lang=EN-US>double attemp, <20><><EFBFBD><EFBFBD> /* atmospheric temperature in degrees Celsius */</span></p>
<p class=SourceText><span lang=EN-US>int32 calc_flag);<3B><><EFBFBD><EFBFBD> /* either SE_TRUE_TO_APP or SE_APP_TO_TRUE */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479480"><span lang=EN-US>16.3. Date and time conversion</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479481"><span lang=EN-US>Delta T from
Julian day number</span></a></h4>
<p class=SourceText><span lang=EN-US><EFBFBD>*
Ephemeris time (ET) = Universal time (UT) + swe_deltat(UT)*/</span></p>
<p class=SourceText><span lang=FR>double <b>swe_deltat</b>(double
tjd);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479482"><span lang=EN-US>Julian day
number from year, month, day, hour, with check whether date is legal</span></a></h4>
<p class=SourceText><span lang=EN-US>/*Return value: OK or ERR<52> */</span></p>
<p class=SourceText><span lang=EN-US>int <b>swe_date_conversion</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
y , int m , int d ,<2C><><EFBFBD><EFBFBD> /* year, month,
day */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> double hour, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* hours (decimal, with fraction) */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> char c,<2C> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /*
calendar <20>g<EFBFBD>[regorian]|<7C>j<EFBFBD>[ulian] */</span></p>
<p class=SourceText><span lang=EN-US>double *tjd);<3B><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* target address for Julian day */ </span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479483"><span lang=EN-US>Julian day
number from year, month, day, hour</span></a></h4>
<p class=SourceText><span lang=EN-US>double <b>swe_julday</b>(</span></p>
<p class=SourceText><span lang=EN-US>int year, int month, int day, double hour,
</span></p>
<p class=SourceText><span lang=EN-US>int gregflag);<3B><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479484"><span lang=EN-US>Year,
month, day, hour from Julian day number</span></a></h4>
<p class=SourceText><span lang=EN-US>void s<b>we_revjul</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd, <20><><EFBFBD><EFBFBD> /* Julian day number */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
gregflag,<2C><><EFBFBD><EFBFBD> /* Gregorian calendar: 1,
Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
*year,<2C> <20><><EFBFBD><EFBFBD> /*
target addresses for year, etc. */ </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
*month, int *day, double *hour);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479485"><span lang=EN-US>Local time
to UTC and UTC to local time</span></a></h4>
<p class=SourceText><span lang=EN-US>/* transform local time to UTC or UTC to
local time</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
input:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> iyear ... dsec<65><63><EFBFBD><EFBFBD> date and time</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> d_timezone<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> timezone offset</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output:</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><> iyear_out ... dsec_out</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For time zones east of Greenwich, d_timezone is positive.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For time zones west of Greenwich, d_timezone is negative.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For conversion from local time to utc, use +d_timezone.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
For conversion from utc to local time, use -d_timezone.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/</span></p>
<p class=SourceText><span lang=EN-US>void FAR PASCAL_CONV swe_utc_timezone(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 iyear, int32 imonth, int32 iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
</span><span lang=FR>int32 ihour, int32
imin, double dsec,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double d_timezone,</span></p>
<p class=SourceText><span lang=FR><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32
*iyear_out, int32 *imonth_out, int32 *iday_out,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32 *ihour_out, int32 *imin_out, double *dsec_out</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
)</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479486"><span lang=EN-US>UTC to jd
(TT and UT1)</span></a></h4>
<p class=SourceText><span lang=EN-US>/* input: date and time (wall clock time),
calendar flag.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: an array of doubles with Julian Day number in ET (TT) and UT (UT1)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> an error
message (on error)</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>* </span><span
lang=EN-GB>The function returns OK or ERR.</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*/
</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_utc_to_jd</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32
iyear, int32 imonth, int32 iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 ihour, int32 imin, double
dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> dret<65><74><EFBFBD><EFBFBD> /*
return array, two doubles:</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* dret[0] = Julian day in ET (TT)</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* dret[1] = Julian day in UT (UT1) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> serr<72><72><EFBFBD><EFBFBD> /*
error string */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479487"><span lang=EN-US>TT (ET1)
to UTC</span></a></h4>
<p class=SourceText><span lang=EN-US>/* input: Julian day number in ET (TT),
calendar flag</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: year, month, day, hour, min, sec in UTC */</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_jdet_to_utc</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>double tjd_et,<2C><><EFBFBD><EFBFBD> /* Julian day number in ET (TT) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 *iyear,
int32 *imonth, int32 *iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 *ihour, int32 *imin, double
*dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479488"><span lang=EN-US>UTC to TT
(ET1)</span></a></h4>
<p class=SourceText><span lang=EN-US>/* input: Julian day number in UT (UT1),
calendar flag</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>*
output: year, month, day, hour, min, sec in UTC */</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_jdut1_to_utc</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>double tjd_ut,<2C><><EFBFBD><EFBFBD> /* Julian day number in ET (TT) */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gregflag, <20><><EFBFBD><EFBFBD> /* Gregorian calendar: 1, Julian calendar: 0 */</span></p>
<p class=SourceText><span lang=EN-GB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>int32 *iyear,
int32 *imonth, int32 *iday,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=EN-GB>int32 *ihour, int32 *imin, double
*dsec,<2C><> /* note&nbsp;: second is a
decimal */</span></p>
<p class=SourceText><span lang=EN-GB>)</span></p>
<h4 style='text-indent:0cm'><span lang=EN-US>&nbsp;</span></h4>
<h4 style='text-indent:0cm'><a name="_Toc354479489"><span lang=EN-US>Get tidal
acceleration used in swe_deltat()</span></a></h4>
<p class=SourceText><span lang=EN-US>double <b>swe_get_tid_acc</b>(void); </span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479490"><span lang=EN-US>Set tidal
acceleration to be used in swe_deltat()</span></a></h4>
<p class=SourceText><span lang=EN-US>void <b>swe_set_tid_acc</b>(double t_acc);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479491"><span lang=EN-US>Equation
of time</span></a></h4>
<p class=SourceText><span lang=EN-US>/ * function returns the difference
between local apparent and local mean time.</span></p>
<p class=SourceText><span lang=IT>e = LAT <20>
LMT.<2E> </span><span lang=EN-US>tjd_et is
ephemeris time */</span></p>
<p class=SourceText><span lang=FR>int <b>swe_time_equ</b>(double
tjd_et, double *e, char *serr);</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479492"><span lang=EN-US>16.4. Initialization, setup, and closing
functions</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479493"><span lang=EN-US>Set
directory path of ephemeris files</span></a></h4>
<p class=SourceText><span lang=EN-US>int <b>swe_set_ephe_path</b>(char *path);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* set name of JPL ephemeris file */</span></p>
<p class=SourceText><span lang=EN-US>int <b>swe_set_jpl_file</b>(char *fname);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* close Swiss Ephemeris */</span></p>
<p class=SourceText><span lang=EN-US>void <b>swe_close</b>(void);</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;page-break-before:always;'><a name="_Toc354479494"><span lang=EN-US>16.5. House calculation</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479495"><span lang=EN-US>Sidereal
time</span></a></h4>
<p class=SourceText><span lang=EN-US>double <b>swe_sidtime</b>(double tjd_ut); <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>double <b>swe_sidtime0</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps, <20><><EFBFBD><EFBFBD> /* obliquity of ecliptic, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
nut);<3B><><EFBFBD><EFBFBD> /* nutation, in degrees */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479496"><span lang=EN-US>House
cusps, ascendant and MC</span></a></h4>
<p class=SourceText><span lang=EN-US>int <b>swe_houses</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude, in
degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double*
cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double*
ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479497"><span lang=EN-US>Extended
house function; to compute tropical or sidereal positions</span></a></h4>
<p class=SourceText><span lang=EN-US>int <b>swe_houses_ex</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int32
iflag, <20><><EFBFBD><EFBFBD> /*
0 or SEFLG_SIDEREAL or SEFLG_RADIANS */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude, in
degrees</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double*
cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double*
ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>int <b>swe_houses_armc</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
armc, <20><><EFBFBD><EFBFBD> /* ARMC */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps, <20><><EFBFBD><EFBFBD> /* ecliptic obliquity, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*cusps, <20><><EFBFBD><EFBFBD> /* array for 13 doubles */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*ascmc);<3B><><EFBFBD><EFBFBD> /* array for 10 doubles */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479498"><span lang=EN-US>Get the
house position of a celestial point</span></a></h4>
<p class=SourceText><span lang=EN-US>double <b>swe_house_pos</b> (</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
armc, <20><><EFBFBD><EFBFBD> /* ARMC */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees</span></p>
<p class=SourceText><span lang=EN-US style='font-family:"Courier New"'><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
eastern longitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> western longitude is negative,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> northern latitude is positive,</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> southern latitude is negative */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps, <20><><EFBFBD><EFBFBD> /* ecliptic obliquity, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> int
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*xpin, <20><><EFBFBD><EFBFBD> /* array of 2 doubles: ecl.
longitude and latitude of the planet */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char *serr);<3B><><EFBFBD><EFBFBD> /* return area for
error or warning message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><span lang=EN-US>&nbsp;</span></h4>
<h4 style='text-indent:0cm'><a name="_Toc354479499"><span lang=EN-US>Get the
Gauquelin sector position for a body</span></a></h4>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>double <b>swe_gauquelin_sector(</b></span></p>
<p class=SourceText><span lang=EN-US>double tjd_ut, <20><><EFBFBD><EFBFBD> /* search after this time (UT) */</span></p>
<p class=SourceText><span lang=EN-US>int32 ipl, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* planet number, if
planet, or moon */</span></p>
<p class=SourceText><span lang=EN-US>char *starname, <20><><EFBFBD><EFBFBD> /* star name, if star */</span></p>
<p class=SourceText><span lang=EN-US>int32 iflag, <20><><EFBFBD><EFBFBD> /* flag for ephemeris and SEFLG_TOPOCTR */</span></p>
<p class=SourceText><span lang=EN-US>int32 imeth, <20><><EFBFBD><EFBFBD> /* method: 0 = with lat., 1 = without lat., </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 = from rise/set, 3 = from rise/set with refraction
*/</span></p>
<p class=SourceText><span lang=EN-US>double *geopos, <20><><EFBFBD><EFBFBD> /* array of three doubles containing</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>* geograph. long., lat., height of observer
*/</span></p>
<p class=SourceText><span lang=EN-US>double atpress,<2C> <20><><EFBFBD><EFBFBD> /* atmospheric
pressure, only useful with imeth=3; </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> * if 0, default = 1013.25 mbar is used*/</span></p>
<p class=SourceText><span lang=EN-US>double attemp,<2C> <20><><EFBFBD><EFBFBD> /* atmospheric
temperature in degrees Celsius, only useful with imeth=3 */</span></p>
<p class=SourceText><span lang=EN-US>double *dgsect,<2C><><EFBFBD> <20><><EFBFBD><EFBFBD> /* return address for
gauquelin sector position */</span></p>
<p class=SourceText><span lang=EN-US>char *serr);<3B> <20><><EFBFBD><EFBFBD> /* return address for error
message */</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug style='page-break-before:always'><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479500"><span lang=EN-US>16.6. Auxiliary functions</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479501"><span lang=EN-US>Coordinate
transformation, from ecliptic to equator or vice-versa</span></a></h4>
<p class=SourceText><span lang=EN-US>equator -&gt; ecliptic<69><63><EFBFBD><EFBFBD> : eps must be positive </span></p>
<p class=SourceText><span lang=EN-US>ecliptic -&gt; equator<6F> <20><><EFBFBD><EFBFBD> :
eps must be negative eps, longitude and latitude are in degrees! */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk478111295"><b>swe_cotrans</b></a>(</span></p>
<p class=SourceText style='margin-left:139.5pt;text-indent:-110.7pt'><span
lang=EN-US>double *xpo, /* 3 doubles:
long., lat., dist. to be converted; distance remains unchanged, can be set to
1.00 */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span
lang=FR>double *xpn, <20><><EFBFBD><EFBFBD> /* 3 doubles: long., lat., dist. </span><span lang=EN-US>Result
of the conversion */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps);<3B><><EFBFBD><EFBFBD> /* obliquity of ecliptic, in
degrees. */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479502"><span lang=EN-US>Coordinate
transformation of position and speed, from ecliptic to equator or vice-versa</span></a></h4>
<p class=SourceText><span lang=EN-US>/ * equator -&gt; ecliptic<69><63> <20><><EFBFBD><EFBFBD> :
eps must be positive</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
ecliptic -&gt; equator<6F> <20><><EFBFBD><EFBFBD> : eps must be negative </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD>
eps, long., lat., and speeds in long. and lat. are in degrees! */</span></p>
<p class=SourceText><span lang=EN-US>void <a name="_Hlk478111388"><b>swe_cotrans_sp</b></a>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*xpo, <20><><EFBFBD><EFBFBD> /* 6 doubles, input: long.,
lat., dist. and speeds in long., lat and dist. */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*xpn, <20><><EFBFBD><EFBFBD> /* 6 doubles, position and
speed in new coordinate system */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
eps);<3B><><EFBFBD><EFBFBD> /* obliquity of ecliptic, in
degrees. */</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479503"><span lang=EN-US>Get the
name of a planet</span></a></h4>
<p class=SourceText><span lang=EN-US>char* swe_get_planet_name(</span></p>
<p class=SourceText><span lang=EN-US>int ipl,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /*
planet number */</span></p>
<p class=SourceText><span lang=EN-US>char* plan_name);<3B><><EFBFBD><EFBFBD> /* address for planet name, at least 20 char */</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>/* normalization of any degree number to
the range 0 ... 360 */ </span></p>
<p class=SourceText><span lang=EN-US>double <a name="_Hlk478111399"><b>swe_degnorm</b></a>(double
x);</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479504"><span lang=EN-US>16.7. Other functions that may be useful</span></a></h3>
<p class=Textkrper-Einzug style='text-indent:35.3pt'><span class=FileName><span
lang=DA style='font-family:Verdana'>PLACALC</span></span><span lang=EN-US>, the
predecessor of </span><span class=FileName><span lang=DA style='font-family:
Verdana'>SWISSEPH</span></span><span lang=EN-US>, had included several
functions that we do not need for SWISSEPH anymore. Nevertheless we include
them again in our DLL, because some users of our software may have taken them
over and use them in their applications. However, we gave them new names that
were more consistent with SWISSEPH.</span></p>
<p class=Textkrper-Einzug style='text-indent:35.3pt'><span class=FileName><span
lang=DA style='font-family:Verdana'>PLACALC </span></span><span lang=EN-US>used
angular measurements in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>centiseconds</span></span><span lang=EN-US> a lot;
a centisecond is <b>1/100</b> of an </span><span class=FileName><span lang=DA
style='font-family:Verdana'>arc second</span></span><span lang=EN-US>. The C
type </span><span class=FileName><span lang=DA style='font-family:Verdana'>CSEC</span></span><span
lang=EN-US> or </span><span class=FileName><span lang=DA style='font-family:
Verdana'>centisec</span></span><span lang=EN-US> is a 32-bit integer. </span><span
class=FileName><span lang=DA style='font-family:Verdana'>CSEC</span></span><span
lang=EN-US> was used because calculation with integer variables was
considerably faster than floating point calculation on most CPUs in 1988, when
PLACALC was written.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>In the Swiss Ephemeris we have
dropped the use of centiseconds and use double (64-bit floating point) for all
angular measurements.</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479505"><span lang=EN-US>Normalize
argument into interval [0..DEG360]</span></a></h4>
<p class=SourceText><span lang=EN-US>/ * former function name: csnorm() */ </span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 centisec FAR PASCAL_CONV
EXP16 <a name="_Hlk478111710"><b>swe_csnorm</b></a>(centisec p);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479506"><span lang=EN-US>Distance
in centisecs p1 - p2 normalized to [0..360]</span></a></h4>
<p class=SourceText><span lang=EN-US>/ * former function name: difcsn() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 centisec FAR PASCAL_CONV
EXP16 <a name="_Hlk478111870"><b>swe_difcsn</b></a>(centisec p1, centisec p2);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479507"><span lang=EN-US>Distance
in degrees</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: difdegn() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 double FAR PASCAL_CONV EXP16 <a
name="_Hlk478111884"><b>swe_difdegn</b> </a>(double p1, double p2);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479508"><span lang=EN-US>Distance
in centisecs p1 - p2 normalized to [-180..180]</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: difcs2n() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 centisec FAR PASCAL_CONV
EXP16 <a name="_Hlk478111918"><b>swe_difcs2n</b></a>(centisec p1, centisec p2);</span></p>
<p class=SourceText style='page-break-before:always'><span lang=EN-US>&nbsp;</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479509"><span lang=EN-US>Distance
in degrees</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: difdeg2n() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 double FAR PASCAL_CONV EXP16 <a
name="_Hlk478111928"><b>swe_difdeg2n</b></a>(double p1, double p2);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479510"><span lang=EN-US>Round
second, but at 29.5959 always down</span></a></h4>
<p class=SourceText><span lang=EN-US><EFBFBD>/*
former function name: roundsec() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 centisec FAR PASCAL_CONV
EXP16 <a name="_Hlk478111937"><b>swe_csroundsec</b></a>(centisec x);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479511"><span lang=EN-US>Double to
long with rounding, no overflow check</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: d2l() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 long FAR PASCAL_CONV EXP16 <a
name="_Hlk478111943"><b>swe_d2l</b></a>(double x);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479512"><span lang=EN-US>Day of
week</span></a></h4>
<p class=SourceText><span lang=EN-US>/*Monday = 0, ... Sunday = 6<> former function name: day_of_week() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 int FAR PASCAL_CONV EXP16 <a
name="_Hlk478111951"><b>swe_day_of_week</b></a>(double jd);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479513"><span lang=EN-US>Centiseconds
-&gt; time string</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: TimeString() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 char *FAR PASCAL_CONV EXP16 <a
name="_Hlk478112061"><b>swe_cs2timestr</b></a>(CSEC t, int sep, AS_BOOL
suppressZero, char *a);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479514"><span lang=EN-US>Centiseconds
-&gt; longitude or latitude string</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: LonLatString() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 char *FAR PASCAL_CONV EXP16 <a
name="_Hlk478112074"><b>swe_cs2lonlatstr</b></a>(CSEC t, char pchar, char
mchar, char *s);</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479515"><span lang=EN-US>Centiseconds
-&gt; degrees string</span></a></h4>
<p class=SourceText><span lang=EN-US>/* former function name: DegreeString() */</span></p>
<p class=SourceText><span lang=EN-US>extern EXP32 char *FAR PASCAL_CONV EXP16 <a
name="_Hlk478112081"><b>swe_cs2degstr</b></a>(CSEC t, char *a);</span></p>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479516"><span
lang=EN-US>17. The SWISSEPH DLLs</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>There is a 32 bit DLL:<3A><><EFBFBD><EFBFBD> </span><span class=FileName><span lang=DA
style='font-family:Verdana'><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> swedll32.dll</span></span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>You can use our programs </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swetest.c</span></span><span lang=EN-US>and </span><span class=FileName><span
lang=DA style='font-family:Verdana'>swewin.c</span></span><span
lang=EN-US>as examples.To compile </span><span class=FileName><span lang=DA
style='font-family:Verdana'>swetest</span></span><span
lang=EN-US>or </span><span class=FileName><span lang=DA style='font-family:
Verdana'>swewin</span></span><span lang=EN-US> with a DLL:</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>&nbsp;</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>1. The compiler needs the following files:</span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>swetest.c</span></span><span lang=EN-US>or</span><span class=FileName><span
lang=DA style='font-family:Verdana'>swewin.c</span></span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>swedll32.dll</span></span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>swedll32.lib</span></span><span
lang=EN-US><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (if you choose
implicit linking)</span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>swedll.h</span></span></p>
<p class=Aufzhlungszeichent52 style='margin-left:0cm;text-indent:0cm'><span
class=FileName><span lang=DA style='font-family:Verdana'>sweodef.h</span></span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>&nbsp;</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>2. Define the following macros (-d):</span></p>
<p class=SourceText><span lang=EN-US>USE_DLL</span></p>
<p class=Aufzhlungszeichent5 style='margin-left:0cm;text-indent:0cm'><span
lang=EN-US>3. Build </span><span class=FileName><span lang=DA style='font-family:
Verdana'>swetest.exe</span></span><span lang=EN-US> from </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swetest.c</span></span><span lang=EN-US>and </span><span class=FileName><span
lang=DA style='font-family:Verdana'>swedll32.lib</span></span><span lang=EN-US>.
</span></p>
<p class=Aufzhlungszeichent54 style='margin-left:0cm'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> Build </span><span class=FileName><span
lang=DA style='font-family:Verdana'>swewin.exe</span></span><span lang=EN-US>
from </span><span class=FileName><span lang=DA style='font-family:Verdana'>swewin.c</span></span><span
lang=EN-US>,</span><span class=FileName><span lang=DA style='font-family:
Verdana'>swewin.rc</span></span><span lang=EN-US>, and </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swedll32.lib</span></span></p>
<p class=Aufzhlungszeichent54 style='margin-left:0cm'><span lang=EN-US>We
provide some project files which we have used to build our test samples. You
will need to adjust the project files to your environment.</span></p>
<p class=Aufzhlungszeichent54 style='margin-left:0cm'><span lang=EN-US>We have
worked with </span><span class=FileName><span lang=DA style='font-family:Verdana'>Microsoft
Visual C++ 5.0</span></span><span lang=EN-US> (32-bit). The DLLs where built
with the Microsoft compilers. </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479517"><span lang=EN-US>17.1 DLL Interface for brain damaged
compilers</span></a></h3>
<p class=MsoNormal><span lang=EN-US>If you work with </span><span
class=FileName><span lang=DA style='font-family:Verdana'>GFA-Basic</span></span><span
lang=EN-US> or some other brain damaged language, the problem will occur that
the DLL interface does not support 8-bit, 32-bit, double by value and VOID data
or function types. Therefore, we have written a set of modified functions that
use </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>double pointers</span><span lang=EN-US> instead of </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>doubles, character
pointers</span><span lang=EN-US>instead of </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>characters,</span><span
lang=EN-US> and </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>integers</span><span
lang=EN-US>instead of </span><span lang=EN-US style='font-size:9.0pt;
font-family:Verdana;color:navy'>void</span><i><span lang=EN-US>. </span></i><span
lang=EN-US>The names of these modified functions are the same as the names of
their prototypes, except that they end with </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'><3E>_d<5F></span><span
lang=EN-US>, e.g. </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_calc_d()</span></span><span lang=EN-US> instead of </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>.The export definitions of these functions can be found in file</span><span
class=FileName><span lang=DA style='font-family:Verdana'> swedll.h.</span></span><span
lang=EN-US> We do not repeat them here to avoid confusion with the ordinary
functions described in the preceding chapters. The additional functions are
only wrapper functions, i.e. they call internally the real DLL functions and
return the same results.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText2><span lang=EN-US>Swiss Ephemeris release 1.61 is the last
release for which 16-bit compilers have been supported and for which a 16-bit
DLL has been created.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479518"><span
lang=EN-US>18. Using the DLL with<74>
Visual Basic 5.0</span></a></h2>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The 32-bit DLL contains the exported function
under 'decorated names'. Each function has an underscore before its name, and a
suffix of the form </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>@xx</span><span lang=EN-US><EFBFBD> where </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>xx</span><span lang=EN-US> is the number of stack bytes
used by the call.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The Visual Basic declarations for the DLL
functions and for some important flag parameters are in the file</span></p>
<p class=MsoSalutation><span class=FileName><span lang=DA style='font-family:
Verdana'>\sweph\vb\swedecl.txt </span></span><span lang=EN-US>and can be
inserted directly into a VB program.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>A sample VB program </span><span
class=FileName><span lang=DA style='font-family:Verdana'>vbsweph</span></span><span
lang=EN-US> is included on the distribution, in directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>\sweph\vb</span></span><span
lang=EN-US>. To run this sample, the DLL file </span><span class=FileName><span
lang=DA style='font-family:Verdana'>swedll32.dll</span></span><span lang=EN-US>
must be copied into the vb directory or installed in the Windows system
directory. </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>DLL functions returning a string:</span></p>
<p class=MsoNormal><span lang=EN-US>Some DLL functions return a string, e.g.</span></p>
<p class=SourceText><span lang=EN-US>char* <b>swe_get_planet_name</b>(int ipl,
char *plname)</span></p>
<p class=MsoPlainText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>This function copies its result into the
string pointer </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>plname;</span><span lang=EN-US> the calling program must provide
sufficient space so that the result string fits into it. As usual in C
programming, the function copies the return string into the provided area and
returns the pointer to this area as the function value. This allows to use this
function directly in a C print statement.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>In VB there are three problems with this
type of function:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>1.<2E><> The string
parameter </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>plname</span><span lang=EN-US> must be initialized to a string of
sufficient length before the call; the content does not matter because it is
overwritten by the called function. The parameter type must be <br>
</span><span lang=EN-US style='font-family:Verdana;color:navy'>ByVal plname as
String.</span><span lang=EN-US style='font-family:"Courier New"'><br><br></span></p>
<p class=MsoBodyText><span lang=EN-US>2.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> The
returned string is terminated by a NULL character. This must be searched in VB
and the VB string length must be set accordingly. Our sample program
demonstrates how this can be done:</span></p>
<p class=SourceText><span lang=EN-US><br>
Private Function <b>set_strlen</b>(c$) As String<br><EFBFBD> i = InStr(c$, Chr$(0))<br><EFBFBD> c$ = Left(c$, i - 1)<br><EFBFBD> set_strlen = c$<br>
End Function<br>
plname = String(20,0)<29><><EFBFBD><EFBFBD> <20> initialize
string to length 20<br>
swe_get_planet_name(SE_SUN, plname)<br>
plname = set_strlen(plname)<br><br></span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>3.<2E><> The function
value itself is a pointer to character. This function value cannot be used in
VB because VB does not have a pointer data type. In VB, such a Function can be
either declared as type </span><span class=FuncName><span lang=DA
style='font-family:Verdana'><3E>As long<6E></span></span><span lang=EN-US> and the
return value ignored, or it can be declared as a Sub. We have chosen to declare
all such functions as </span><span class=FuncName><span lang=DA
style='font-family:Verdana'><3E>Sub<75></span></span><span lang=EN-US>, which
automatically ignores the return value.<br>
</span><span lang=EN-US style='font-family:Verdana;color:navy'>Declare Sub <b>swe_get_planet_name
</b>(ByVal ipl as Long, ByVal plname as String)</span></p>
<p class=MsoNormal><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479519"><span
lang=EN-US>19. Using the DLL with<74>
Borland Delphi and C++ Builder</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479520"><span lang=EN-US>19.1 Delphi 2.0 and higher (32-bit)</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The information in this section was
contributed by </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Markus Fabian, Bern, Switzerland</span></span><span lang=EN-US>.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>In Delphi 2.0 the declaration of the
function </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>swe_calc()</span><span lang=EN-US> looks like this:</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText><span lang=EN-US>xx : Array[0..5] of double;</span></p>
<p class=SourceText><span lang=EN-US>function <b>swe_calc</b> (tjd<6A><64><EFBFBD><EFBFBD> : double;<3B><><EFBFBD><EFBFBD> // Julian day number</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=DA>ipl <20><><EFBFBD><EFBFBD> : Integer;<3B><><EFBFBD> // planet number</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> iflag<61><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> :
Longint;<3B><><EFBFBD> // flag bits</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>var
xx[0]<5D><><EFBFBD><EFBFBD> : double;</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span><span lang=DA>sErr<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> : PChar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //
Error-String;</span></p>
<p class=SourceText><span lang=DA><EFBFBD><EFBFBD><EFBFBD> </span><span lang=EN-US>) : Longint;
stdcall; far; external 'swedll32.dll' Name '_swe_calc@24';</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>A nearly complete set of declarations is in
file </span><span class=FileName><span lang=DA style='font-family:Verdana'>\sweph\delphi2\swe_d32.pas</span></span><span
lang=EN-US>.</span></p>
<p class=MsoNormal><span lang=EN-US>A small sample project for Delphi 2.0 is
also included in the same directory (starting with release <b>1.25</b> from
June 1998). This sample requires the DLL to exist in the same directory as the
sample.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479521"><span lang=EN-US>19.2 Borland C++ Builder</span></a></h3>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>Borland
C++ Builder</span></span><span lang=EN-US> (BCB) does not understand the
Microsoft format in the library file</span><span class=FileName><span lang=DA
style='font-family:Verdana'> SWEDLL32.LIB</span></span><span lang=EN-US>; it
reports an OMF error when this file is used in a BCB project. The user must
create his/her own LIB file for BCB with the utility IMPLIB which is part of
BCB.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>With the following command command you
create a special lib file in the current directory:</span></p>
<p class=SourceText><span lang=EN-US>IMPLIB <20>f <20>c swe32bor.lib
\sweph\bin\swedll32.dll</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>In the C++ Builder project the following
settings must be made:</span></b></p>
<p class=MsoNormal><b><span lang=EN-US>&nbsp;</span></b></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-size:9.0pt;
font-family:Symbol;color:navy'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Menu </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Options-&gt;Projects-&gt;Directories/Conditionals</span></span><span
lang=EN-US>: add the conditional define</span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'> USE_DLL</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Menu<EFBFBD>
</span><span class=FileName><span lang=DA style='font-family:Verdana'>Project-&gt;Add_to_project</span></span><span
lang=EN-US>: add the library file</span><span class=FileName><span lang=DA
style='font-family:Verdana'> swe32bor.lib</span></span><span lang=EN-US> to
your project.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span class=FileName><span lang=DA
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>In the project source, add the
include file</span><span class=FileName><span lang=DA style='font-family:Verdana'>
&quot;swephexp.h&quot;</span></span></p>
<p class=MsoSalutation><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>In the header file </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swedll.h</span></span><span
lang=EN-US> the declaration for </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Dllimport</span></span><span lang=EN-US> must be</span></p>
<p class=SourceText><span lang=EN-US>#define DllImport<72> extern &quot;C&quot; __declspec( dllimport )</span></p>
<p class=MsoNormal><span lang=EN-US>This is provided automatically by the <span
style='color:navy'>__cplusplus</span> switch for release <b>1.24</b> and
higher. For earlier releases the change must be made manually.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>Changes for c++builder 2010</span></b></p>
<p class=MsoNormal><span lang=EN-US>Swiss Ephemeris developer Jean Cremers,
Netherlands, reported in August 2010 that a different procedure is needed for
new versions of c++builder. This is his report:</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>The method
described in the file swephprg.htm 'Using the DLL with<74> Borland Delphi and C++ Builder' does not
work for the current c++builder (I use c++ builder 6).</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>The command
'IMPLIB <20>f <20>c swe32bor.lib \sweph\bin\swedll32.dll' will give 2 errors 'unable
to open file' and will create the file '-f.lib'.</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>It seems implib
cannot handle the switches anymore, indeed when left out the file swe32bor.lib
is generated but the file is in the coff format.</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>A solution is to
use the coff2omf.exe utility that comes with c++builder like this 'coff2omf.exe
swedll32.dll swe32bor.lib', it will generate a usable lib for c++builder.</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>The steps to use
sweph with c++builder then become:</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>----</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>With the
following command command you create a special lib file in the current
directory:</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>coff2omf.exe
swedll32.dll \sweph\bin\swe32bor.lib</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>In the C++
Builder project the following settings must be made:</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>Menu
Options-&gt;Projects-&gt;Directories/Conditionals: add the conditional define
USE_DLL</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>Menu<EFBFBD> Project-&gt;Add_to_project: add the library
file swe32bor.lib to your project.</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>In the project
source, add the include file &quot;swephexp.h&quot;</span></p>
<p class=MsoNormal style='margin-left:14.2pt'><span lang=EN-US>----</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479522"><span
lang=EN-US>20. Using the Swiss Ephemeris with Perl</span></a></h2>
<p class=MsoNormal><span lang=EN-US>The Swiss Ephemeris can be run from Perl
using the Perl module SwissEph.pm. The module SwissEph.pm uses XSUB (<28>eXternal
SUBroutine<EFBFBD>), which calls the Swiss Ephemeris functions either from a C library
or a DLL.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>In order to run the Swiss Ephemeris from
Perl, you have to</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<ol style='margin-top:0cm' start=1 type=1>
<li class=MsoNormal><span
lang=EN-US>Install the Swiss Ephemeris. Either you download the Swiss
Ephemeris DLL from <a href="http://www.astro.com/swisseph">http://www.astro.com/swisseph</a>
or you download the Swiss Ephemeris C source code and compile a static or
dynamic shared library. We built the package on a Linux system and use a
shared library of the Swiss Ephemeris functions.</span></li>
</ol>
<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US>&nbsp;</span></p>
<ol style='margin-top:0cm' start=2 type=1>
<li class=MsoNormal><span
lang=EN-US>Install the XS library:</span></li>
</ol>
<p class=MsoNormal style='text-indent:35.3pt'><span lang=EN-US>- Unpack the
file PerlSwissEph-1.76.00.tar.gz (or whatever newest version there is)</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - Open the file Makefile.PL, and edit it
according to your requirements. Then run it.</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - make install</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>If you work on a Windows machine and prefer
to use the Swiss Ephemeris DLL, you may want to study R<>diger Plantiko's Perl
module for the Swiss Ephemeris at <a
href="http://www.astrotexte.ch/sources/SwissEph.zip">http://www.astrotexte.ch/sources/SwissEph.zip</a>.
There is also a documentation in German language by R<>diger Plantiko at <a
href="http://www.astrotexte.ch/sources/swe_perl.html">http://www.astrotexte.ch/sources/swe_perl.html</a>).</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479523"><span
lang=EN-US>21. The C sample program</span></a></h2>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The distribution contains executables and C
source code of sample programs which demonstrate the use of the Swiss Ephemeris
DLL and its functions.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>All samples programs are compiled with the
Microsoft Visual C++ 5.0 compiler (32-bit). Project and Workspace files for
these environments are included with the source files.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>Directory structure:</span></b></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana;
color:windowtext'>Sweph\bin<69><6E><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></span><span lang=EN-US>DLL, LIB
and EXE file</span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana;
color:windowtext'>Sweph\src</span></span><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> source
files, resource files</span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana;
color:windowtext'>Sweph\src\swewin32</span></span><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32-bit windows sample program</span></p>
<p class=MsoNormal><span lang=EN-US>Sweph\src\swete32<33><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32-bit character mode sample program</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>You can run
the samples in the following environments:</span></b></p>
<p class=MsoSalutation><span lang=EN-US>Swetest.exe <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> in Windows command line<6E><65><EFBFBD> </span></p>
<p class=MsoNormal><span lang=EN-US>Swete32.exe<78><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> in Windows command line</span></p>
<p class=MsoNormal><span lang=EN-US>Swewin32.exe<78><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> in Windows </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>Character mode executable that needs a
DLL</span></b></p>
<p class=MsoSalutation><b><span lang=EN-US>Swete32.exe </span></b></p>
<p class=MsoNormal><span lang=EN-US>The project files are in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>\sweph\src\swete32</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swetest.c</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swedll32.lib</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swedll.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>sweodef.h</span></span></p>
<p class=MsoNormal><span lang=PT-BR>define
macros:<span style='color:navy'>USE_DLL<EFBFBD><EFBFBD> DOS32<33><32> DOS_DEGREE</span></span></p>
<p class=MsoNormal><span lang=PT-BR>&nbsp;</span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US>swewin32.exe</span></b></p>
<p class=MsoNormal><span lang=EN-US>The project files are in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>\sweph\src\swewin32</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swewin.c</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swedll32.lib</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swewin.rc</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swewin.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swephexp.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>swedll.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>sweodef.h</span></span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>resource.h</span></span></p>
<p class=MsoNormal><span lang=EN-US>define macro<72><6F> <span style='color:navy'><EFBFBD>USE_DLL</span></span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>How the sample programs search for the
ephemeris files:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>1.<2E><> check
environment variable </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>SE_EPHE_PATH</span><span lang=EN-US>; if it exists it is
used, and if it has invalid content, the program fails.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>2.<2E><> Try to find
the ephemeris files in the current working directory</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>3.<2E><> Try to find
the ephemeris files in the directory where the executable resides</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US>4.<2E><> Try to find
a directory named </span><span class=FileName><span lang=DA style='font-family:
Verdana'>\SWEPH\EPHE </span></span><span lang=EN-US>in one of the following
three drives: </span></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;'><span lang=EN-US
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>where the executable resides</span></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;'><span lang=EN-US
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>current drive</span></p>
<p class=MsoNormal style='margin-left:36.0pt;text-indent:-18.0pt;'><span lang=EN-US
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>drive C:</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>As soon as it succeeds in finding the first
ephemeris file it looks for, it expects all required ephemeris files to reside
there. This is a feature of the sample programs only, as you can see in our C
code. </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The DLL itself has a different and simpler
mechanism to search for ephemeris files, which is described with the function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_set_ephe_path()</span></span><span
lang=EN-US> above.</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479524"><span
lang=EN-US>21.</span></a><a name="_Hlk477415522"><span lang=EN-US> The source code distribution</span></a></h2>
<p class=MsoNormal><span lang=EN-US>Starting with release <b>1.26</b>, the full
source code for the Swiss Ephemeris DLL is made available. Users can choose to
link the Swiss Ephemeris code directly into their applications. The source code
is written in </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Ansi C</span></span><span lang=EN-US> and consists of these files:</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr style='height:18.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:18.0pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>Bytes</span></b></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:18.0pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>Date</span></b></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:18.0pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>File name</span></b></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:18.0pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US>Comment</span></b></p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1639</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 28
17:09</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Makefile</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>unix
makefile for library</span></p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>API
interface files</span></b></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>15050</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:56</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swephexp.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>SwissEph
API include file</span></p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>14803</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:59</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swepcalc.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Placalc API
include file</span></p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>Internal
files</span></b></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoSalutation align=right style='text-align:right;layout-grid-mode:
char'><span lang=EN-US>8518</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:06</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swedate.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2673</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:03</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swedate.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8808</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 28
19:24</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swedll.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>24634</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swehouse.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2659</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:05</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swehouse.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>31279</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swejpl.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>3444</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:05</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swejpl.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>38238</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swemmoon.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2772</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:05</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swemosh.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>18687</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swemplan.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>311564</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swemptab.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>7291</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:06</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>sweodef.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>28680</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swepcalc.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>173758</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>sweph.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12136</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:06</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>sweph.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>55063</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:07</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swephlib.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>4886</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 27
10:06</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swephlib.h</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr style='height:14.0pt'>
<td width=128 style='width:95.65pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>43421</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Nov 28
19:33</span></p>
</td>
<td width=123 style='width:92.15pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swetest.c</span></p>
</td>
<td width=161 style='width:120.45pt;padding:0cm 3.5pt 0cm 3.5pt;height:14.0pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>In most cases the user will compile
a linkable or shared library from the source code, using his favorite C
compiler, and then link this library with his application.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>If the user programs in C, he will
only need to include the header file swephexp.h with his application; this in
turn will include sweodef.h. All other source files can ignored from the
perspective of application development.</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479525"><span
lang=EN-US>22. The PLACALC compatibility API</span></a></h2>
<p class=Textkrper-Einzug><span lang=EN-US>To simplify porting of older </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Placalc</span></span><span
lang=EN-US> applications to the </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Swiss Ephemeris</span></span><span lang=EN-US> API,
we have created the </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Placalc</span></span><span lang=EN-US> compatibility API which
consists of the header file </span><span class=FileName><span lang=DA
style='font-family:Verdana'>swepcalc.h</span></span><span lang=EN-US>. This
header file replaces the headers </span><span class=FileName><span lang=DA
style='font-family:Verdana'>ourdef.h</span></span><span lang=EN-US>, </span><span
class=FileName><span lang=DA style='font-family:Verdana'>placalc.h, housasp.h</span></span><span
lang=EN-US> and </span><span class=FileName><span lang=DA style='font-family:
Verdana'>astrolib.h</span></span><span lang=EN-US> in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Placalc</span></span><span
lang=EN-US> applications.You should be able to link your Placalc aplication now
with the Swiss Ephemeris library. The </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Placalc</span></span><span lang=EN-US> API
is not contained in the </span><span class=FileName><span lang=DA
style='font-family:Verdana'>SwissEph</span></span><span lang=EN-US> DLL.</span></p>
<p class=Textkrper-Einzug><span lang=EN-US>All new software should use the </span><span
class=FileName><span lang=DA style='font-family:Verdana'>SwissEph</span></span><span
lang=EN-US> API directly.</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479526"><span
lang=EN-US>23. Documentation files</span></a></h2>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The following files are in the directory </span><span
class=FileName><span lang=DA style='font-family:Verdana'>\sweph\doc</span></span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>sweph.cdr</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>sweph.gif</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swephin.cdr</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swephin.gif</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swephprg.doc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></span><span class=FileName><span
lang=EN-US style='font-family:Verdana;color:windowtext;'>Documentation
for programming, a MS Word-97 file</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swephprg.rtf<74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swisseph.doc<6F><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></span><span class=FileName><span
lang=EN-US style='font-family:Verdana;color:windowtext;'>General
information on Swiss Ephemeris</span></span></p>
<p class=MsoPlainText><span class=FileName><span lang=DA style='font-family:
Verdana'>swisseph.rtf</span></span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The files with suffix .CDR are Corel Draw
7.0 documents with the Swiss Ephemeris icons.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479527"><span
lang=EN-US>24. Swisseph with different hardware and compilers</span></a></h2>
<p class=MsoNormal><span lang=EN-US>Depending on what hardware and compiler you
use, there will be slight differences in your planetary calculations. For
positions in longitude, they will be never larger than <b>0.0001&quot;</b> in
longitude. Speeds show no difference larger than <b>0.0002 arcsec/day.</b></span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The following factors show larger
differences between HPUX and Linux on a Pentium II processor:</span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>Mean
Node, Mean Apogee:</span></span></p>
<p class=MsoNormal><span lang=EN-US>HPUX PA-Risc non-optimized versus optimized
code:</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>
differences are smaller than 0.001 arcsec/day</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=FR>HPUX PA-Risc
versus Intel Pentium gcc non-optimzed</span></p>
<p class=MsoNormal><span lang=FR><EFBFBD> </span><span lang=EN-US>differences are
smaller than 0.001 arcsec/day</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Intel Pentium gss non-optimzed versus -O9
optimized:</span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>Mean
Node, True node, Mean Apogee</span></span><span lang=EN-US>: difference smaller
than 0.001 arcsec/day</span></p>
<p class=MsoNormal><span class=FileName><span lang=DA style='font-family:Verdana'>Osculating
Apogee:</span></span><span lang=EN-US> differences smaller than 0.03 arcsec</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>The differences originate from the fact
that the floating point arithmetic in the Pentium is executed with 80 bit
precision, whereas stored program variables have only 64 bit precision. When
code is optimized, more intermediate results are kept inside the processor
registers, i.e. they are not shortened from 80bit to 64 bit. When these results
are used for the next calculation, the outcome is then slightly different. </span></p>
<p class=MsoNormal><span lang=EN-US>In the computation of speed for the nodes
and apogee, differences between positions at close intervals are involved; the
subtraction of nearly equal values results shows differences in internal
precision more easily than</span></p>
<p class=MsoNormal><span lang=EN-US>other types of calculations. As these
differences have no effect on any imaginable application software and are mostly
within the design limit of Swiss Ephemeris, they can be savely ignored.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479528"><span
lang=EN-US>25. Debugging and Tracing Swisseph</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479529"><span lang=EN-US>25.1. If you are using the DLL</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Besides the ordinary Swisseph function,
there are two additional DLLs that allow you tracing your Swisseph function
calls:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span class=FileName><span lang=DA style='font-family:Verdana'>Swetrs32.dll</span></span><span
lang=EN-US> is for single task debugging, i.e. if only one application at a
time calls Swisseph functions. </span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>Two output files
are written:</span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>a) </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swetrace.txt</span></span><span
lang=EN-US>: reports all Swisseph functions that are being called.</span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>b) </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swetrace.c:</span></span><span
lang=EN-US> contains C code equivalent to the Swisseph calls that your
application did.</span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>The last bracket
of the function </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>main()</span><span lang=EN-US> at the end of the file is
missing. </span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>If you want to
compile the code, you have to add it manually. Note that these files may grow
very fast, </span></p>
<p class=MsoNormal style='text-indent:18.0pt'><span lang=EN-US>depending on
what you are doing in your application. The output is limited to 10000 function
calls per run.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span class=FileName><span lang=DA style='font-family:Verdana'>Swetrm32.dll</span></span><span
lang=EN-US> is for multitasking, i.e. if more than one application at a time
are calling Swisseph functions. If you used the single task DLL here, all
applications would try to write their trace output into the same file. </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Swetrm32.dll</span></span><span
lang=EN-US> generates output file names that contain the process identification
number of the application by which the DLL is called, e.g. </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swetrace_192.c </span></span><span
lang=EN-US>and </span><span class=FileName><span lang=DA style='font-family:
Verdana'>swetrace_192.txt.</span></span></p>
<p class=MsoNormal style='margin-left:18.0pt'><span lang=EN-US>Keep in mind
that every process creates its own output files and with time might fill your
disk.</span></p>
<p class=MsoNormal><span lang=EN-US>In order to use a trace DLL, you have to
replace your Swisseph DLL by it:</span></p>
<p class=MsoNormal><span lang=EN-US>a) save your Swisseph DLL</span></p>
<p class=MsoNormal><span lang=EN-US>b) rename the trace DLL as your Swisseph
DLL (e.g. as</span><span class=FileName><span lang=DA style='font-family:Verdana'>
swedll32.dll</span></span><span lang=EN-US>)</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span class=Inverse><span lang=EN-US>IMPORTANT:</span></span><span
lang=EN-US> The Swisseph DLL will not work properly if you call it from <b>more
than one thread.</b></span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Output samples </span><span class=FileName><span
lang=DA style='font-family:Verdana'>swetrace.txt:</span></span></p>
<div style='border:solid black .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>&nbsp;</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_deltat: 2451337.870000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.000757<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_set_ephe_path: path_in = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> path_set = \sweph\ephe\</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_calc: 2451337.870757<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 258<35><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 23.437404<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 23.439365<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -0.003530<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -0.001961<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.000000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.000000</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_deltat: 2451337.870000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.000757<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_sidtime0: 2451337.870000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sidt = 1.966683<EFBFBD> eps = 23.437404<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> nut = -0.003530<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_sidtime: 2451337.870000<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1.966683<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_calc: 2451337.870757<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 258<35><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 77.142261<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -0.000071<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1.014989<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.956743<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -0.000022<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 0.000132</span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>swe_get_planet_name: 0<><30><EFBFBD><EFBFBD><EFBFBD> Sun<75><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> </span></p>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;
border:none;padding:0cm;'><span
lang=EN-US style='font-size:8.0pt'>&nbsp;</span></p>
</div>
<p class=SourceText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoSalutation><span class=FileName><span lang=DA style='font-family:
Verdana'>swetrace.c:</span></span></p>
<div style='border:solid black .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>#include
&quot;sweodef.h&quot;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>#include
&quot;swephexp.h&quot;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>void
main()</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>{</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US><EFBFBD> double tjd, t, nut, eps; int i, ipl, retc;
long iflag;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US><EFBFBD> double armc, geolat, cusp[12], ascmc[10];
int hsys;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US><EFBFBD> double xx[6]; long iflgret;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US><EFBFBD> char s[AS_MAXCH], star[AS_MAXCH],
serr[AS_MAXCH];</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>&nbsp;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA>/*SWE_DELTAT*/</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA><EFBFBD> tjd =
2451337.870000000; t = swe_deltat(tjd);</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA><EFBFBD>
printf(&quot;swe_deltat: %f\t%f\t\n&quot;, tjd, t);</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA>&nbsp;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA>/*SWE_CALC*/</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA><EFBFBD> tjd =
2451337.870757482; ipl = 0; iflag = 258;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA><EFBFBD> iflgret =
swe_calc(tjd, ipl, iflag, xx, serr);<3B><><EFBFBD><EFBFBD> /*
xx = 1239992 */</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=DA>&nbsp;</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US>/*SWE_CLOSE*/</span></p>
<p class=SourceText style='border:none;
padding:0cm;'><span lang=EN-US><EFBFBD> swe_close();</span></p>
</div>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479530"><span lang=EN-US>25.2 If you are using the source code</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Similar tracing is also possible if you
compile the Swisseph source code into your application. Use the preprocessor
definitions </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>TRACE=1</span><span lang=EN-US> for single task debugging, and
TRACE=2 for multitasking. In most compilers this flag can be set with </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'><3E>DTRACE=1</span><span
lang=EN-US> or </span><span lang=EN-US style='font-size:9.0pt;font-family:Verdana;
color:navy'>/DTRACE=1.</span></p>
<p class=MsoNormal><span lang=EN-US>For further explanations, see 21.1.</span></p>
<div style='border:none;border-bottom:solid black .5pt;padding:0cm 0cm 1.0pt 0cm'>
<p class=MsoNormal style='border:none;
padding:0cm;'><span lang=EN-US>&nbsp;</span></p>
</div>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479531"><span
lang=EN-US>Appendix</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479532"><span lang=EN-US>Update and release history</span></a></h3>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>Updated</span></b></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>By</span></b></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoSalutation align=right style='text-align:right;layout-grid-mode:
char'><span lang=EN-US>30-sep-97</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>added
chapter 10 (sample programs)</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>7-oct-97</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>inserted
chapter 7 (house calculation)</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8-oct-97</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Appendix
<20>Changes from version 1.00 to 1.01<EFBFBD></span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12-oct-1997</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Added new
chapter 10 Using the DLL with Visual Basic</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>26-oct-1997</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>improved implementation and documentation
of swe_fixstar() </span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>28-oct-1997</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Changes from Version 1.02 to 1.03</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>29-oct-1997</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>added VB sample extension, fixed VB
declaration errors</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>9-Nov-1997</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>added Delphi declaration sample</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8-Dec-97</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>remarks concerning computation of
asteroids, changes to version 1.04</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8-Jan-98</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>changes from version 1.04 to 1.10.</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12-Jan-98</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>changes from version 1.10 to 1.11.</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>21-Jan-98</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>calculation of topocentric planets and
house positions (1.20)</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>28-Jan-98</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Delphi 1.0 sample and declarations for 16-
and 32-bit Delphi (1.21)</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>11-Feb-98</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><EFBFBD>version 1.23</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>7-Mar-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>version 1.24 support for Borland C++
Builder added </span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>4-June-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>version 1.25 sample for Borland Delphi-2
added</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>29-Nov-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>version 1.26 source code information added
<20>16, Placalc API added</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>1-Dec-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>chapter 19 and some additions in beginning
of Appendix.</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2-Dec-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Equation of Time explained (in <20>4), changes
version 1.27 explained</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>3-Dec-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Note on ephemerides of 1992 QB1 and 1996
TL66</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>17-Dec-1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Note on extended time range of 10'800 years</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=FR>22 Dec 1998</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=FR>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=FR><EFBFBD>Appendix
A</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12-Jan-1999</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Eclipse functions added, version 1.31</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>19-Apr-99</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><EFBFBD>version 1.4</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8-Jun-99</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Chapter 21 on tracing an debugging Swisseph</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>27-Jul-99</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>Info about sidereal calculations</span></p>
</td>
</tr>
<tr style='height:19.8pt'>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt;
height:19.8pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>16-Aug-99</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt;
height:19.8pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt;
height:19.8pt'>
<p class=MsoNormal style='layout-grid-mode:char'><EFBFBD>version 1.51, minor bug fixes</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>15-Feb-00</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD>many things for version 1.60</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=IT>19-Mar-00</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=IT>Vic Ogi</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>SWEPHPRG.DOC
re-edited</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>17-apr-02</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.64</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>26-Jun-02</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=FR>Version 1.64.01</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=FR>31-dec-2002</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=FR>Alois</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>edited doc to remove references to 16-bit
version</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>12-jun-2003</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Alois/Dieter</span></p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.65</span></p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>10-Jul-2003</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.66</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>25-May-2004</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation of eclipse functions updated</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>31-Mar-2005</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.67</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>3-May-2005</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.67.01</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>22-Feb-2006</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.70.00</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>2-May-2006</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Dieter</span></p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.70.01</span></p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>5-Feb-2006</span></p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.70.02</p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=108 style='width:81.05pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>30-Jun-2006</p>
</td>
<td width=95 colspan=2 style='width:71.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=438 colspan=2 style='width:328.65pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.70.03</p>
</td>
<td width=16 valign=top style='width:11.8pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>28-Sep-2006</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation for version 1.71</span></p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-GB>29-May-2008</span></p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.73</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>18-Jun-2008</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.74</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>27-Aug-2008</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Documentation for version 1.75</p>
</td>
</tr>
<tr>
<td width=109 colspan=2 style='width:81.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'>7-April-2009</p>
</td>
<td width=96 colspan=2 style='width:72.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Dieter</p>
</td>
<td width=452 colspan=2 style='width:339.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>Documentation of version 1.76</span></p>
</td>
</tr>
<tr height=0>
<td width=108 style='border:none'></td>
<td width=1 style='border:none'></td>
<td width=94 style='border:none'></td>
<td width=2 style='border:none'></td>
<td width=436 style='border:none'></td>
<td width=16 style='border:none'></td>
</tr>
</table>
<p class=MsoSalutation><span lang=EN-GB>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>Release</span></b></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><b><span lang=EN-US>Date</span></b></p>
</td>
<td width=506 valign=top style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD></span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.00</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>30-sep-1997</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD></span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.01</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>9-oct-1997</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span class=FuncName><span
lang=DA style='font-family:Verdana'>houses(), sidtime()</span></span><span
lang=EN-US> made more convenient for developer, Vertex added.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.02</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>16-oct-1997</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span class=FuncName><span
lang=DA style='font-family:Verdana'>houses()</span></span><span lang=EN-US>
changed again, Visual Basic support, new numbers for fictitious planets This
release was pushed to all existing licensees at this date.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.03</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>28-Oct-1997</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>minor bug
fixes, improved </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>swe_fixstar()</span><span lang=EN-US> functionality. This
release was not pushed, as the changes and bug fixes are minor; no changes of
function definitions occurred.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.04</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>8-Dec-1997</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>minor bug
fixes; more asteroids.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.10</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>9-Jan-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>bug fix, s.
Appendix. This release was pushed to all existing licensees at this date.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.11</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12-Jan-98</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>small
improvements</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.20</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>20-Jan-98</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US
style='background:yellow'>New</span><span lang=EN-US>: topocentric planets
and house positions; a minor bug fix</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.21</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>28-Jan-98</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoSalutation style='layout-grid-mode:char'><span lang=EN-US>Delphi
declarations and sample for Delphi 1.0</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.22</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2-Feb-98</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoSalutation style='layout-grid-mode:char'><span lang=EN-US>Asteroids
moved to subdirectory. </span><span lang=EN-US style='font-size:9.0pt;
font-family:Verdana;color:navy'>Swe_calc()</span><span lang=EN-US> finds them
there.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.23</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>11-Feb-98</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>two minor
bug fixes.</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.24</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>7-Mar-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Documentation
for Borland C++ Builder added, see section 14.3</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.25</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>4-June-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Sample for
Borland Delphi-2 added</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.26</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>29-Nov-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>full source
code made available, Placalc API documented</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.27</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>2-dec-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Changes to </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>SE_EPHE_PATH</span></span><span
lang=EN-US> and </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_set_ephe_path()</span></span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.30</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>17-Dec-1998</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Time range
extended to 10'800 years</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.31</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>12-Jan-1999</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US
style='background:yellow'>New</span><span lang=EN-US>: Eclipse functions
added</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.40</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>19-Apr-99</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US
style='background:yellow'>New</span><span lang=EN-US>: planetary phenomena
added; bug fix in </span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_sol_ecl_when_glob();</span></span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.50</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>27-Jul-99</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US
style='background:yellow'>New</span><span lang=EN-US>: SIDEREAL planetary
positions and houses; new</span><span class=FileName><span lang=DA
style='font-family:Verdana'> fixstars.cat</span></span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.51</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>16-Aug-99</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor bug
fixes</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.60</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>15-Feb-2000</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Major
release with <span style='background:yellow'>many new features</span> and
some minor bug fixes</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.61</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>11-Sep-2000</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor
release, additions to se_rise_trans(), swe_houses(), ficitious planets</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.61.01</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>18-Sep-2000</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor
release, added Alcabitus house system</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.61.02</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>10-Jul-2001</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor
release, fixed bug which prevented asteroid files &gt; 22767 to be accepted</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.61.03</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>20-Jul-2001</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor
release, fixed bug which was introduced in 1.61.02: Ecliptic was computed in
Radians instead of degrees</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.62.00</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD> 23-Jul-2001</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Minor
release, several bug fixes, code for fictitious satellites of the earth,
asteroid files &gt; 55535 are accepted</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.62.01</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>16-Oct-2001</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Bug fix,
string overflow in sweph.c::read_const(), </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=3 style='width:50.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.63.00</span></p>
</td>
<td width=102 style='width:76.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>5-Jan-2002</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Added house
calculation to sweetest.c and swetest.exe </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.64.00</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>6-Mar-2002</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>House
system <20>G<EFBFBD> for house functions and function swe_gauquelin_sector() for
Gauquelin sector calculations</span></p>
<p class=MsoNormal><span lang=EN-US>Occultations of planets and fixed stars
by the moon</span></p>
<p class=MsoNormal><span lang=EN-US>New Delta T algorithms</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.64.01</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>26-Jun-2002</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Bug fix in
swe_fixstar(). Stars with decl. between <20>1<EFBFBD> and 0<> were wrong</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.65.00</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>12-Jun-2003</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Long
variables replaced by INT32 for 64-bit compilers</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>1.66.00</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>10-Jul-2003</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>House
system <20>M<EFBFBD> for Morinus houses</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>1.67.00</p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>31-Mar-2005</p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>Update Delta T</p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>1.67.01</p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>3-May-2005</p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Docu for
sidereal calculations (Chap. 10) updated (precession-corrected transits)</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.70.00</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>22-Feb-2006</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>all
relevant IAU resolutions up to 2005 have been implemented</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.70.01</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>2-May-2006</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>minor bug
fix</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.70.02</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>5-May-2006</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>minor bug
fix</span></p>
</td>
</tr>
<tr>
<td width=66 style='width:49.6pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.70.03</span></p>
</td>
<td width=103 colspan=3 style='width:77.3pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>30-June-2006</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>bug fix</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.71</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>28-Sep-2006</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Swiss
Ephemeris functions able to calculate minor planet<65> no 134340 Pluto</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.72</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>28-Sep-2007</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>New
function swe_refract_extended(), Delta T update, minor bug fixes</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.73</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>29-May-2008</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>New
function swe_fixstars_mag(), Whole Sign houses </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.74</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>18-Jun-2008</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Bug fixes </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.75</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>27-Aug-2008</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Swiss
Ephemeris can read newer JPL ephemeris files; bug fixes </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.76</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>7-April-2009</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Heliacal
risings, UTC and minor improvements/bug fixes </span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.77</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>26-Jan-2010</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>swe_deltat(),
swe_fixstar() improved, swe_utc_time_zone_added</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.78</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>3-Aug-2012</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>New
precession, improvement of some eclipse functions, some minor bug fixes</span></p>
</td>
</tr>
<tr>
<td width=67 colspan=2 style='width:49.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>1.79</span></p>
</td>
<td width=103 colspan=2 style='width:76.95pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-GB>18-Apr-2013</span></p>
</td>
<td width=506 style='width:379.85pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>New
precession, improvement of some eclipse functions, some minor bug fixes</span></p>
</td>
</tr>
<tr height=0>
<td width=66 style='border:none'></td>
<td width=0 style='border:none'></td>
<td width=1 style='border:none'></td>
<td width=102 style='border:none'></td>
<td width=506 style='border:none'></td>
</tr>
</table>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479533"><span lang=EN-US>Changes from version 1.78 to 1.79</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>- Improved precision in eclipse calculations:
2<sup>nd</sup> and 3<sup>rd</sup> contact with solar eclipses, penumbral and
partial phases with lunar eclipses. </span></p>
<p class=MsoBodyText><span lang=EN-US>- Bug fix in function
swe_sol_eclipse_when_loc().If the local maximum eclipse occurs at sunset or
sunrise, tret[0] now gives the moment when the lower limb of the Sun touches
the horizon. This was not correctly implemented in former versions</span></p>
<p class=MsoBodyText><span lang=EN-US>- Several changes to C code that had
caused compiler warnings (as proposed by Torsten F<>rtsch).</span></p>
<p class=MsoBodyText><span lang=EN-US>- Bug fix in Perl functions swe_house()
etc. These functions had crashed with a segmention violation if called with the
house parameter <20>G<EFBFBD>.</span></p>
<p class=MsoNormal style='text-autospace:ideograph-numeric ideograph-other'><span
lang=EN-US>- Bug fix in Perl function swe_utc_to_jd(), where gregflag had been
read from the 4<sup>th</sup> instead of the 6<sup>th</sup> parameter.</span></p>
<p class=MsoNormal style='text-autospace:ideograph-numeric ideograph-other'><span
lang=EN-US>- Bug fix in Perl functions to do with date conversion. The default
mechanism for gregflag was buggy.<2E> </span></p>
<p class=MsoBodyText><span lang=EN-GB>- For
Hindu astrologers, some more ayanamshas were added that are related to
Suryasiddhanta and Aryabhata and are of historical interest. </span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479534"><span lang=EN-US>Changes from version 1.77 to 1.78</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>- <span style='background:yellow;'>precession is now calculated according to Vondr<64>k, Capitaine,
and Wallace 2011.</span></span></p>
<p class=MsoBodyText><span lang=EN-US>- Delta t for current years updated.</span></p>
<p class=MsoBodyText><span lang=EN-US>- new function: swe_rise_trans_true_hor()
for risings and settings at a local horizon with known height.</span></p>
<p class=MsoBodyText><span lang=EN-US>- functions swe_sol_eclipse_when_loc(),
swe_lun_occult_when_loc(): return values tret[5] and tret[6] (sunrise and
sunset times) added, which had been 0 so far.</span></p>
<p class=MsoBodyText><span lang=EN-US>- function swe_lun_eclipse_how(): return
values attr[4-6] added (azimuth and apparent and true altitude of moon).</span></p>
<p class=MsoBodyText><span lang=EN-US>- <span style='background:yellow;'>Attention</span> with swe_sol_eclipse_how(): return value
attr[4] is azimuth, now measured from south, in agreement with the function
swe_azalt() and swe_azalt_rev().</span></p>
<p class=MsoBodyText><span lang=EN-US>- minor bug fix in swe_rise_trans():
twilight calculation returned invalid times at high geographic latitudes.</span></p>
<p class=MsoBodyText><span lang=EN-US>- minor bug fix: when calling swe_calc()
1. with SEFLG_MOSEPH, 2. with SEFLG_SWIEPH, 3. again with SEFLG_MOSEPH, the
result of 1. and 3. were slightly different. Now they agree.</span></p>
<p class=MsoBodyText><span lang=EN-US>- minor bug fix in swe_houses(): With
house methods H (Horizon), X (Meridian), M (Morinus), and geographic latitudes
beyond the polar circle, the ascendant was wrong at times. The ascendant always
has to be on the eastern part of the horizon.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479535"><span lang=EN-US>Changes from version 1.76 to 1.77</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>- Delta T:</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- Current values were updated.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- File sedeltat.txt understands doubles.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- For the period before 1633, the new formulae by Espenak and Meeus
(2006) are used.<2E> These formulae were
derived from Morrison &amp; Stephenson (2004), as used by the Swiss Ephemeris
until version 1.76.02.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- The tidal acceleration of the moon contained in LE405/6 was corrected
according to Chapront/Chapront-Touz<75>/Francou A&amp;A 387 (2002), p. 705.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>- Fixed stars:</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- There was an error in the handling of the proper motion in RA. The
values given in fixstars.cat, which are taken from the Simbad database
(Hipparcos), are referred to a great circle and include a factor of cos(d0).</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- There is a new fixed stars file sefstars.txt. The parameters are now
identical to those in the Simbad database, which makes it much easier to add
new star data to the file. If the program function swe_fixstars() does not find
sefstars.txt, it will try the the old fixed stars file fixstars.cat and will
handle it correctly. </span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- Fixed stars data were updated, some errors corrected.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- Search string for a star ignores white spaces.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>- Other changes:</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- New function swe_utc_time_zone(), converts local time to UTC and UTC
to local time. Note, the function has no knowledge about time zones. The Swiss
Ephemeris still does not provide the time zone for a given place and time.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- swecl.c:swe_rise_trans() has two new minor features:
SE_BIT_FIXED_DISC_SIZE and SE_BIT_DISC_BOTTOM (thanks to Olivier Beltrami)</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- minor bug fix in swemmoon.c, Moshier's lunar ephemeris (thanks to
Bhanu Pinnamaneni)</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
- solar and lunar eclipse functions provide additional data:</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD>
attr[8] magnitude, attr[9] saros series number, attr[10] saros series
member number</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479536"><span lang=EN-US>Changes from version 1.75 to 1.76</span></a></h3>
<p class=MsoBodyText><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoBodyText><span lang=EN-US>- Functions for the calculation of
heliacal risings and related phenomena, s. chap. 6.15-6.17.</span></p>
<p class=MsoBodyText><span lang=EN-US>- Functions for conversion between UTC
and JD (TT/UT1), s. chap. 7.2 and 7.3.</span></p>
<p class=MsoBodyText><span lang=EN-US>- File sedeltat.txt allows the user to
update Delta T himself regularly, s. chap. 8.3</span></p>
<p class=MsoBodyText><span lang=EN-US>- Function swe_rise_trans(): twilight
calculations (civil, nautical, and astronomical) added</span></p>
<p class=MsoBodyText><span lang=EN-US>- Function swe_version() returns version
number of Swiss Ephemeris.</span></p>
<p class=MsoBodyText><span lang=EN-US>- Swiss Ephemeris for Perl programmers
using XSUB </span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>Other updates:</span></p>
<p class=MsoBodyText><span lang=EN-US>- Delta T updated (-2009).</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>Minor bug fixes:</span></p>
<p class=MsoBodyText><span lang=EN-US>- swe_house_pos(): minor bug with
Alcabitius houses fixed</span></p>
<p class=MsoBodyText><span lang=EN-US>- swe_sol_eclipse_when_glob(): totality
times for eclipses jd2456776 and jd2879654 fixed (tret[4], tret[5])</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479537"><span lang=EN-US>Changes from version 1.74 to version 1.75</span></a></h3>
<p class=MsoNormal><span lang=EN-US>- The Swiss Ephemeris is now able to read
ephemeris files of JPL ephemerides DE200 - DE421. If JPL will not change the
file structure in future releases, the Swiss Ephemeris will be able to read
them, as well.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>- Function swe_fixstar() (and
swe_fixstar_ut()) was made slightly more efficient. </span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>- Function swe_gauquelin_sector() was
extended.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>- Minor bug fixes.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479538"><span lang=EN-US>Changes from version 1.73 to version 1.74</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>The Swiss Ephemeris is made available
under a dual licensing system:</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD> a)
GNU public license version 2 or later</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD> b)
Swiss Ephemeris Professional License</span></p>
<p class=MsoBodyText><span lang=EN-US>For more details, see at the beginning of
this file and at the beginning of every source code file.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>Minor bug fixes:</span></p>
<p class=MsoBodyText><span lang=EN-US>- Bug in swe_fixstars_mag() fixed.</span></p>
<p class=MsoBodyText><span lang=EN-US>- Bug in swe_nod_aps() fixed. With
retrograde asteroids (20461 Dioretsa, 65407 2002RP120), the calculation of
perihelion and aphelion was not correct. </span></p>
<p class=MsoBodyText><span lang=EN-US>- The ephemeris of asteroid 65407
2002RP120 was updated. It had been wrong before 17 June 2008.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479539"><span lang=EN-US>Changes from version 1.72 to version 1.73</span></a></h3>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoBodyText><span lang=EN-US>- Whole Sign houses implemented (W)</span></p>
<p class=MsoBodyText><span lang=EN-US>- swe_house_pos() now also handles
Alcabitius house method</span></p>
<p class=MsoBodyText><span lang=EN-US>- function swe_fixstars_mag() provides
fixed stars magnitudes</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479540"><span lang=EN-US>Changes from version 1.71 to version 1.72</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>- Delta T values for recent years were
updated</span></p>
<p class=MsoBodyText><span lang=EN-GB>- Delta T
calculation before 1600 was updated to Morrison/Stephenson 2004..</span></p>
<p class=MsoBodyText><span lang=EN-US>- New function swe_refract_extended(), in
cooperation with archaeoastronomer Victor<6F>
Reijs.</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD> This
function allows correct calculation of refraction for altitudes above sea &gt;
0, where the ideal horizon and</span></p>
<p class=MsoBodyText><span lang=EN-US><EFBFBD>
Planets that are visible may have a negative height.</span></p>
<p class=MsoBodyText><span lang=EN-US>- Minor bugs in
swe_lun_occult_when_glob() and swe_lun_eclipse_how() were fixed.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479541"><span lang=EN-US>Changes from version 1.70.03 to version
1.71</span></a></h3>
<p class=MsoBodyText><span lang=EN-US>In September 2006, Pluto was introduced
to the minor planet catalogue and given the catalogue number 134340.</span></p>
<p class=MsoBodyText><span lang=EN-US>The numerical integrator we use to
generate minor planet ephemerides would crash with 134340 Pluto, because Pluto
is one of those planets whose gravitational perturbations are used for the
numerical integration. Instead of fixing the numerical integrator for this
special case, we chang the Swiss Ephemeris functions in such a way that they
treat minor planet 134340 Pluto (ipl=SE_AST_OFFSET+134340) as our main body
Pluto (ipl=SE_PLUTO=9). This also results in a slightly better precision for
134340 Pluto.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<p class=MsoBodyText><span lang=EN-US>Swiss Ephemeris versions prior to 1.71
are not able to do any calculations for minor planet number 134340.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479542"><span lang=EN-US>Changes from version 1.70.02 to version
1.70.03</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Bug fixed (in swecl.c: swi_bias()): This
bug sometimes resulted in a crash, if the DLL was used and the SEFLG_SPEED was
not set. It seems that the error happened only with the DLL and did not appear,
when the Swiss Ephemeris C code was directly linked to the application.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Code to do with (#define NO_MOSHIER ) war
removed.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479543"><span lang=EN-US>Changes from version 1.70.01 to version
1.70.02</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Bug fixed in speed calculation for
interpolated lunar apsides. With ephemeris positions close to 0 Aries, speed
calculations were completely wrong. E.g. swetest -pc -bj3670817.276275689
(speed = 1448042<34> !)</span></p>
<p class=MsoNormal><span lang=EN-US>Thanks, once more, to Thomas Mack, for
testing the software so well.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479544"><span lang=EN-US>Changes from version 1.70.00 to version
1.70.01</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Bug fixed in speed calculation for
interpolated lunar apsides. Bug could result in program crashes if the speed
flag was set.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479545"><span lang=EN-US>Changes from version 1.67 to version 1.70</span></a></h3>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>Update of
algorithms to IAU standard recommendations:</span></p>
<p class=MsoNormal><span lang=EN-US>All relevant IAU resolutions up to 2005
have been implemented. These include:</span></p>
<p class=MsoNormal><span lang=EN-US>- the &quot;frame bias&quot; rotation from
the JPL reference system ICRS to J2000. The correction of position ~= 0.0068
arc sec in right ascension.</span></p>
<p class=MsoNormal><span lang=EN-US>- the precession model P03
(Capitaine/Wallace/Chapront 2003). The correction in longitude is smaller than
1 arc second from 1000 B.C. on.</span></p>
<p class=MsoNormal><span lang=EN-US>- the nutation model IAU2000B (can be
switched to IAU2000A)</span></p>
<p class=MsoNormal><span lang=EN-US>- corrections to epsilon</span></p>
<p class=MsoNormal><span lang=EN-US>- corrections to sidereal time</span></p>
<p class=MsoNormal><span lang=EN-US>- fixed stars input data can be
&quot;J2000&quot; or &quot;ICRS&quot;</span></p>
<p class=MsoNormal><span lang=EN-US>- fixed stars conversion FK5 -&gt; J2000,
where required</span></p>
<p class=MsoNormal><span lang=EN-US>- fixed stars data file was updated with
newer data </span></p>
<p class=MsoNormal><span lang=EN-US>- constants in sweph.h updated</span></p>
<p class=MsoNormal><span lang=EN-US>For more info, see the documentation
swisseph.doc, chapters 2.1.2.1-3.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>- Ephemerides of &quot;interpolated lunar
apogee and perigee&quot;, as published by Dieter Koch in 2000 (swetest -pcg).</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>
For more info, see the documentation swisseph.doc, chapter 2.2.4.</span></p>
<p class=MsoNormal><span lang=EN-US>- House system according to Bogdan
Krusinski (character <20>U<EFBFBD>).</span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>
For more info, see the documentation swisseph.doc, chapter 6.1.13.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Bug fixes:</span></p>
<p class=MsoNormal><span lang=EN-US>- Calculation of magnitude was wrong with
asteroid numbers &lt; 10000 (10-nov-05)</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479546"><span lang=EN-US>Changes from version 1.66 to version 1.67</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US>Delta-T updated with new measured values
for the years 2003 and 2004, and better estimates for 2005 and 2006.</span></p>
<p class=MsoNormal><span lang=EN-US>Bug fixed #define SE_NFICT_ELEM 15 </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479547"><span lang=EN-US>Changes from version 1.65 to version 1.66</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>House system according to Morinus (system
<EFBFBD>M<EFBFBD>).</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479548"><span lang=EN-US>Changes from version 1.64.01 to version
1.65.00</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>long<EFBFBD> variables were changed to <20>INT32<33>
for 64-bit compilers.</span></p>
<p class=MsoBodyText><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479549"><span lang=EN-US>Changes from version 1.64 to version
1.64.01</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US>- Bug fixed in swe_fixstar(). Declinations
between <20>1<EFBFBD> and 0<> were wrongly taken as positive.</span></p>
<p class=MsoNormal><span lang=EN-US>Thanks to John Smith, Serbia, who found
this bug.</span></p>
<p class=MsoNormal><span lang=EN-US>- Several minor bug fixes and cosmetic code
improvements suggested by Thomas Mack, Germany. </span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>
swetest.c: options <20>po and <20>pn work now. </span></p>
<p class=MsoNormal><span lang=EN-US><EFBFBD>
Sweph.c: speed of mean node and mean lunar apogee were wrong in rare
cases, near 0 Aries.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479550"><span lang=EN-US>Changes from version 1.63 to version 1.64</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>1) Gauquelin sectors:</span></p>
<p class=MsoNormal><span lang=EN-US>- swe_houses() etc. can be called with
house system character <20>G<EFBFBD> to calculate Gauquelin sector boundaries. </span></p>
<p class=MsoNormal><span lang=EN-US>- swe_house_pos() can be called with house
system <20>G<EFBFBD> to calculate sector positions of planets.</span></p>
<p class=MsoNormal><span lang=EN-US>- swe_gauquelin_sector() is new and
calculates Gauquelin sector positions with three methods: without ecl. latitude,
with ecl. latitude, from rising and setting.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>2) Waldemath Black Moon elements have been
added in seorbel.txt (with thanks to Graham Dawson). </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>3) Occultations of the planets and fixed
stars by the moon</span></p>
<p class=MsoNormal><span lang=EN-US>- swe_lun_occult_when_loc() calculates
occultations for a given geographic location</span></p>
<p class=MsoNormal><span lang=EN-US>- swe_lun_occult_when_glob() calculates
occultations globally</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>4) Minor bug fixes in swe_fixstar()
(Cartesian coordinates), solar eclipse functions, swe_rise_trans()</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>5) sweclips.c integrated into swetest.c.
Swetest now also calculates eclipses, occultations, risings and settings.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>6) new Delta T algorithms</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479551"><span lang=EN-US>Changes from version 1.62 to version 1.63</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>The option <20>house was added to swetest.c so
that swetest.exe can now be used to compute complete horoscopes in textual
mode.</span></p>
<p class=MsoNormal><span lang=EN-US>Bux fix: a minor bug in function
swe_co_trans was fixed. It never had an effect.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479552"><span lang=EN-US>Changes from version 1.61.03 to version
1.62</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>1) Elements for hypothetical bodies that
move around the earth (e.g. Selena/White Moon) can be added to the file
seorbel.txt.</span></p>
<p class=MsoNormal><span lang=EN-US>2) The software will be able to read
asteroid files &gt; 55535. </span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Bug fixes: </span></p>
<p class=MsoNormal><span lang=EN-US>1) error in geocentric planetary descending
nodes fixed</span></p>
<p class=MsoNormal><span lang=EN-US>2) swe_calc() now allows hypothetical
planets beyond SE_FICT_OFFSET + 15</span></p>
<p class=MsoNormal><span lang=EN-US>3) position of hypothetical planets
slightly corrected (&lt; 0.01 arc second)</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479553"><span lang=EN-US>Changes from version 1.61 to 1.61.01</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>1. swe_houses and swe_houses_armc now
supports the Alcabitus house system. The function swe_house_pos() does not yet,
because we wanted to release quickly on user request. </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479554"><span lang=EN-US>Changes from version 1.60 to 1.61</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>1. Function swe_rise_trans(): Risings and
settings also for disc center and without refraction </span></p>
<p class=MsoNormal><span lang=EN-US>2. <20>topocentric<69> house system added to
swe_houses() and other house-related functions</span></p>
<p class=MsoNormal><span lang=EN-US>3. Hypothetical planets (seorbel.txt),
orbital elements with t terms are possible now (e.g. for Vulcan according to
L.H. Weston)</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479555"><span lang=EN-US>Changes from version 1.51 to 1.60</span></a></h3>
<p class=MsoNormal><b><span lang=EN-US style='color:red'>&nbsp;</span></b></p>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New features:</span></p>
<p class=MsoNormal><span lang=EN-US>1. Universal time functions </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>swe_calc_ut()</span><span
lang=EN-US>, </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_fixstar_ut()</span></span><span
lang=EN-US>, etc.</span></p>
<p class=MsoNormal><span lang=EN-US>2. Planetary nodes, </span><span
class=FileName><span lang=DA style='font-family:Verdana'>perihelia, aphelia,
focal points</span></span></p>
<p class=MsoNormal><span lang=EN-US>3. </span><span class=FileName><span
lang=DA style='font-family:Verdana'>Risings, settings, and meridian transits</span></span><span
lang=EN-US> of the Moon, planets, asteroids, and stars.</span></p>
<p class=MsoNormal><span lang=EN-US>4. Horizontal coordinates (</span><span
class=FileName><span lang=DA style='font-family:Verdana'>azimuth and altitude</span></span><span
lang=EN-US>)</span></p>
<p class=MsoNormal><span lang=EN-US>5. Refraction</span></p>
<p class=MsoNormal><span lang=EN-US>6. User-definable orbital elements</span></p>
<p class=MsoNormal><span lang=EN-US>7. Asteroid names can be updated by user</span></p>
<p class=MsoNormal><span lang=EN-US>8. Hitherto missing &quot;Personal
Sensitive Points&quot; according to M. Munkasey.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>Minor bug fixes:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b><span lang=EN-US>Astrometric lunar positions </span></b><span
lang=EN-US>(not relevant for astrology; </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_calc(tjd, SE_MOON, SEFLG_NOABERR))</span></span><span
lang=EN-US> had a maximum error of about 20 arc sec).</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b><span lang=EN-US>Topocentric lunar positions</span></b><span
lang=EN-US> (not relevant for common astrology): the ellipsoid shape of the
earth was not correctly implemented. This resulted in an error of 2 - 3 arc
seconds. The new precision is 0.2 - 0.3 arc seconds, corresponding to about 500
m in geographic location. This is also the precision that Nasa's Horizon system
provides for the topocentric moon. The planets are much better, of course.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><b><span lang=EN-US>Solar eclipse functions</span></b><i><span
lang=EN-US>:</span></i><span lang=EN-US> The correction of the topocentric moon
and another small bug fix lead to slightly different results of the solar
eclipse functions. The improvement is within a few time seconds.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479556"><span lang=EN-US>Changes from version 1.50 to 1.51</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Minor bug fixes:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>J2000 coordinates for the lunar node
and osculating apogee corrected. This bug did not affect ordinary computations
like ecliptical or equatorial positions.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>minor bugs in swetest.c corrected</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>sweclips.exe recompiled</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>trace DLLs recompiled</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>some VB5 declarations corrected</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479557"><span lang=EN-US>Changes from version 1.40 to 1.50</span></a></h3>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New:</span><span class=FileName><span lang=DA
style='font-family:Verdana'>SIDEREAL</span></span><span lang=EN-US> planetary
and house position.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The fixed star file </span><span
class=FileName><span lang=DA style='font-family:Verdana'>fixstars.cat</span></span><span
lang=EN-US> has been improved and enlarged by Valentin Abramov, Tartu, Estonia.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Stars have been ordered by
constellation. Many names and alternative spellings have been added.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Minor bug fix in solar eclipse
functions, sometimes relevant in border-line cases annular/total, partial/total.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>J2000 coordinates for the lunar nodes
were redefined: In versions before 1.50, the J2000 lunar nodes were the
intersection points of the lunar orbit with the ecliptic of 2000. From 1.50 on,
they are defined as the intersection points with the ecliptic of date, referred
to the coordinate system of the ecliptic of J2000.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479558"><span lang=EN-US>Changes from version 1.31 to 1.40</span></a></h3>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New:</span><span lang=EN-US>Function for several
planetary phenomena added</span></p>
<p class=MsoNormal><span lang=EN-US>Bug fix in </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_sol_ecl_when_glob()</span></span><span
lang=EN-US>. The time for maximum eclipse at local apparent noon (tret[1]) was
sometimes wrong. When called from VB5, the program crashed.</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479559"><span lang=EN-US>Changes from version 1.30 to 1.31</span></a></h3>
<p class=MsoNormal><span lang=EN-US style='background:yellow'>New:</span><span
lang=EN-US> Eclipse functions added.</span></p>
<p class=MsoNormal><span lang=EN-US>Minor bug fix: with previous versions, the
function</span><span class=FuncName><span lang=DA style='font-family:Verdana'>
swe_get_planet_name()</span></span><span lang=EN-US> got the name wrong, if it
was an asteroid name and consisted of two or more words (e.g. Van Gogh)</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479560"><span lang=EN-US>Changes from version 1.27 to 1.30</span></a></h3>
<p class=MsoNormal><span lang=EN-US>The time range of the Swiss Ephemeris has
been extended by numerical integration. The Swiss Ephemeris now covers the
period <b>2 Jan 5401 BC</b> to <b>31 Dec 5399 AD</b>. To use the extended time
range, the appropriate ephemeris files must be downloaded.</span></p>
<p class=MsoNormal><span lang=EN-US>In the JPL mode and the Moshier mode the
time range remains unchanged at 3000 BC to 3000 AD.</span></p>
<p class=MsoNormal><span class=Inverse><span lang=EN-US><EFBFBD>IMPORTANT<EFBFBD>
</span></span></p>
<p class=MsoNormal><span lang=EN-US>Chiron<EFBFBD>s ephemeris is now restricted to the
time range <b>650 AD <20> 4650 AD</b>; for explanations, see </span><span
class=FileName><span lang=DA style='font-family:Verdana'>swisseph.doc.</span></span></p>
<p class=MsoNormal><span lang=EN-US>Outside this time range, Swiss Ephemeris
returns an error code and a position value 0. You must handle this situation in
your application. There is a similar restriction with Pholus (as with some
other asteroids).</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479561"><span lang=EN-US>Changes from version 1.26 to 1.27</span></a></h3>
<p class=MsoNormal><span lang=EN-US>The environment variable </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>SE_EPHE_PATH</span></span><span
lang=EN-US> is now always overriding the call to </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_set_ephe_path()</span></span><span
lang=EN-US> if it is set and contains a value. </span></p>
<p class=MsoNormal><span lang=EN-US>Both the environment variable and the
function argument can now contain a list of directory names where the ephemeris
files are looked for. Before this release, they could contain only a single
directory name.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479562"><span lang=EN-US>Changes from version 1.25 to 1.26</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The asteroid subdirectory
ephe/asteroid has been split into directories </span><span class=FileName><span
lang=DA style='font-family:Verdana'>ast0, ast1</span></span><span lang=EN-US>,...
with 1000 asteroid files per directory.<2E>
</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>source code is included with the
distribution under the new licensing model</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>the Placalc compatibility API (</span><span
class=FileName><span lang=DA style='font-family:Verdana'>swepcalc.h</span></span><span
lang=EN-US>) is now documented</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span class=FuncName><span lang=DA
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>There is a new function to
compute the equation of time </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_time_equ().</span></span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Improvements of ephemerides:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=Inverse><span lang=EN-US>ATTENTION:</span></span><span
lang=EN-US> Ephemeris of <b>16 Psyche</b> has been wrong so far ! By a
mysterious mistake it has been identical to 3 Juno.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Ephemerides of Ceres, Pallas, Vesta,
Juno, Chiron and Pholus have been reintegrated, with more recent orbital
elements and parameters (e.g. asteroid masses) that are more appropriate to
Bowells database of minor planets elements. The differences are small, though.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Note that the <a href="#_Hlk478116834"><span
style='font-family:Verdana'>CHIRON</span></a> ephemeris is should not be used
before <b>700 A.D.</b></span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Minor bug fix in computation of
topocentric planet positions. Nutation has not been correcly considered in
observer<EFBFBD>s position. This has lead to an error of 1 milliarcsec with the
planets and 0.1<EFBFBD> with the moon.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>We have inactivated the coordinate
transformation from <b>IERS</b> to <b>FK5</b>, because there is still no
generally accepted algorithm. This results in a difference of a few milliarcsec
from former releases. </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479563"><span lang=EN-US>Changes from version 1.22 to 1.23</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The topocentric flag now also works
with the fixed stars. (The effect of diurnal aberration is a few 0.1 arc
second.)</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Bug fix: The return position of </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_cotrans_sp()</span></span><span
lang=EN-US> has been 0, when the input distance was 0.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>About 140 asteroids are on the CD.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479564"><span lang=EN-US>Changes from version 1.21 to 1.22</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Asteroid ephemerides have been moved
to the </span><span class=FileName><span lang=DA style='font-family:Verdana'>ephe\asteroid</span></span><span
lang=EN-US>.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The DLL has been modified in such a
way that it can find them there.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>All asteroids with catalogue number
below 90 are on the CD and a few additional ones.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479565"><span lang=EN-US>Changes from version 1.20 to 1.21</span></a></h3>
<p class=MsoNormal><span lang=EN-US>Sample program and function declarations
for <a href="#_Hlk478117215"><span style='font-family:Verdana'>Delphi 1.0<EFBFBD> </span></a><EFBFBD>added.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479566"><span lang=EN-US>Changes from version 1.11 to 1.20</span></a></h3>
<p class=Textkrper-Einzug><span lang=EN-US style='background:yellow'>New:</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>A flag bit </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>SEFLG_TOPOCTR</span></span><span
lang=EN-US> allows to compute topocentric planet positions. Before calling </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US>, call <a href="#_Hlk477841944"><span style='font-family:Verdana'>swe_set_topo</span></a>.</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US><a href="#_Hlk477862955"><span
style='font-family:Verdana'>swe_house_pos</span></a> for computation of the
house position of a given planet. See description in </span><span
class=FileName><span lang=DA style='font-family:Verdana'>SWISSEPH.DOC</span></span><span
lang=EN-US>, Chapter 3.1 <span style='color:navy'><EFBFBD>Geocentric and topocentric
positions<EFBFBD></span>. A bug has been fixed that has sometimes turned up, when the
JPL ephemeris was closed. (An error in memory allocation and freeing.)</span></p>
<p class=Textkrper-Einzug style='margin-left:18.0pt;text-indent:-18.0pt;'><span
lang=EN-US style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Bug fix: </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_cotrans() </span></span><span
lang=EN-US>did not work in former versions. </span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479567"><span lang=EN-US>Changes from version 1.10 to 1.11</span></a></h3>
<p class=MsoNormal><span lang=EN-US>No bug fix, but two minor improvements:</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>A change of the ephemeris bits in
parameter </span><span class=VarName><span lang=EN-US style='font-size:12.0pt;
font-family:"Times New Roman"'>iflag</span></span><span lang=EN-US> of function
</span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> usually forces an implicit </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_close()</span></span><span lang=EN-US>
operation. Inside a loop, e.g. for drawing a graphical epehemeris, this can
slow down a program. Before this release, two calls with </span><span
lang=EN-US style='font-size:9.0pt;font-family:Verdana;color:navy'>iflag = 0</span><span
lang=EN-US> and </span><span lang=EN-US style='font-size:9.0pt;font-family:
Verdana;color:navy'>iflag = SEFLG_SWIEPH</span><span lang=EN-US> where
considered different, though in fact the same ephemeris is used. Now these two calls
are considered identical, and </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_close()</span></span><span lang=EN-US> is not
performed implicitly.<br>
For calls with the pseudo-planet-number </span><span lang=EN-US
style='font-size:9.0pt;font-family:Verdana;color:navy'>ipl = SE_ECL_NUT</span><span
lang=EN-US>, whose result does not depend on the chosen ephemeris, the
ephemeris bits are ignored completely and </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_close()</span></span><span lang=EN-US>
is never performed implicitly.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>In former versions, calls of the
Moshier ephemeris with speed and without speed flag have returned a very small
difference in position (0.01 arc second). The reason was that, for precise
speed, </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> had to do an additional iteration in the light-time calculation.
The two calls now return identical position data.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479568"><span lang=EN-US>Changes from version 1.04 to 1.10</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>A bug has been fixed that sometimes
occurred in </span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_calc()</span></span><span
lang=EN-US> when the user changed </span><span class=VarName><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman"'>iflag</span></span><span
class=FileName><span lang=DA style='font-family:Verdana'> between calls</span></span><span
lang=EN-US>, e.g. the speed flag. The first call for a planet which had been
previously computed for the same time, but a different iflag, could return
incorrect results, if Sun, Moon or Earth had been computed for a different time
in between these two calls.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>More asteroids have been added in this
release.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479569"><span lang=EN-US>Changes from Version 1.03 to 1.04</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>A bug has been fixed that has
sometimes lead to a floating point exception when the speed flag was not
specified and an unusual sequence of planets was called.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Additional asteroid files have been
included. </span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><b><span lang=EN-US style='color:white;background:blue'><EFBFBD>Attention: </span><span lang=EN-US
style='color:white'><3E></span></b><span
lang=EN-US><3E>Use these files only with
the new DLL. Previous versions cannot deal with more than one additional
asteroid besides the main asteroids. This error did not appear so far, because
only 433 Eros was on our CD-ROM.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479570"><span lang=EN-US>Changes from Version 1.02 to 1.03</span></a></h3>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_fixstar()</span></span><span lang=EN-US> has a better
implementation for the search of a specific star. If a number is given, the
non-comment lines in the file </span><span class=FileName><span lang=DA
style='font-family:Verdana'>fixstars.cat</span></span><span lang=EN-US> are now
counted from 1; they where counted from zero in earlier releases.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span class=FuncName><span lang=DA style='font-family:
Verdana'>swe_fixstar()</span></span><span lang=EN-US> now also computes
heliocentric and barycentric fixed stars positions. Former versions Swiss
Ephemeris always returned geocentric positions, even if the heliocentric or the
barycentric flag bit was set.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span class=FileName><span lang=DA
style='font-family:Symbol;'><3E><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><span lang=EN-US>The </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Galactic Cente</span></span><span
lang=EN-US>r has been included in </span><span class=FileName><span lang=DA
style='font-family:Verdana'>fixstars.cat.</span></span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Two small bugs were fixed in the
implementation of the barycentric Sun and planets. Under unusual conditions,
e.g. if the caller switched from JPL to Swiss Ephemeris or vice-versa, an error
of an arc second appeared with the barycentric sun and 0.001 arc sec with the
barycentric planets. However, this did not touch normal geocentric
computations.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>Some VB declarations in swedecl.txt
contained errors and have been fixed. The VB sample has been extended to show
fixed star and house calculation. This fix is only in 1.03 releases from 29-oct-97
or later, not in the two 1.03 CDROMs we burned on 28-oct-97.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479571"><span lang=EN-US>Changes from Version 1.01 to 1.02</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses()</span></span><span
lang=EN-US> has been changed.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>A new function </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses_armc()</span></span><span
lang=EN-US> has been added which can be used when a sidereal time (</span><span
class=VarName><span lang=EN-US style='font-size:12.0pt;font-family:"Times New Roman"'>armc</span></span><span
lang=EN-US>) is given but no actual date is known, e.g. for Composite charts.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The body numbers of the hypothetical
bodies have been changed.</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>The development environment for the
DLL and the sample programs have been changed from Watcom 10.5 to Microsoft
Visual C++ (5.0 and 1.5). This was necessary because the Watcom compiler
created LIB files which were not compatible with Microsoft C. The LIB files
created by Visual C however are compatible with Watcom.</span></p>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479572"><span lang=EN-US>Changes from Version 1.00<EFBFBD> to 1.01</span></a></h3>
<h4 style='text-indent:0cm'><a name="_Toc354479573"><span lang=EN-US>1.
Sidereal time</span></a></h4>
<p class=MsoNormal><span lang=EN-US>The computation of the sidereal time is now
much easier. The obliquity and nutation are now computed inside the function.
The structure of the function </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_sidtime()</span></span><span lang=EN-US> has
been changed as follows:</span></p>
<p class=SourceText><span lang=EN-US>/* sidereal time */</span></p>
<p class=SourceText><span lang=EN-US>double swe_sidtime(double tjd_ut); <20><><EFBFBD><EFBFBD> /* Julian day number, UT */</span></p>
<p class=MsoNormal><span lang=EN-US>The old functions </span><span
class=FuncName><span lang=DA style='font-family:Verdana'>swe_sidtime0()</span></span><span
lang=EN-US> has been kept for backward compatibility.</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479574"><span lang=EN-US>2. Houses</span></a></h4>
<p class=MsoNormal><span lang=EN-US>The calculation of houses has been
simplified as well. Moreover, the Vertex has been added. </span></p>
<p class=MsoNormal><span lang=EN-US>The version <b>1.01</b> structure of</span><span
class=FuncName><span lang=DA style='font-family:Verdana'> swe_houses()</span></span><span
lang=EN-US> is:</span></p>
<p class=SourceText><span lang=EN-US>int <b>swe_houses</b>(</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
tjd_ut, <20><><EFBFBD><EFBFBD> /* julian day number, UT */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolat, <20><><EFBFBD><EFBFBD> /* geographic latitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
geolon, <20><><EFBFBD><EFBFBD> /* geographic longitude, in
degrees */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> char
hsys, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> /* house method, one of the letters PKRCAV */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*asc,<2C><><EFBFBD><EFBFBD> /* address for ascendant */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*mc,<2C> <20><><EFBFBD><EFBFBD> /*
address for mc */<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> </span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*armc,<2C><><EFBFBD><EFBFBD> /* address for armc */</span></p>
<p class=SourceText><span lang=EN-US><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double
*vertex, <20><><EFBFBD><EFBFBD> /* address for vertex */</span></p>
<p class=SourceText><span lang=EN-US>double *cusps);<3B><><EFBFBD><EFBFBD> /* address for 13 doubles: 1 empty + 12 houses */</span></p>
<p class=MsoSalutation><span lang=EN-US>&nbsp;</span></p>
<p class=MsoSalutation><span lang=EN-US>Note also, that the indices of the
cusps have changed:</span></p>
<p class=SourceText><span lang=EN-US>cusp[0] = 0<><30> <20><><EFBFBD><EFBFBD> (before: cusp[0] = house
1)</span></p>
<p class=SourceText><span lang=EN-US>cusp[1] = house 1<><31> <20><><EFBFBD><EFBFBD> (before: cusp[1] = house
2)</span></p>
<p class=SourceText><span lang=FR>cusp[2] = house
2<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (etc.)</span></p>
<p class=MsoNormal><span lang=FR>etc.</span></p>
<h4 style='text-indent:0cm'><a name="_Toc354479575"><span lang=EN-US>3.
Ecliptic obliquity and nutation</span></a></h4>
<p class=MsoNormal><span lang=EN-US>The new pseudo-body</span><span
class=FuncName><span lang=DA style='font-family:Verdana'> SE_ECL_NUT </span></span><span
lang=EN-US>replaces the two separate pseudo-bodies </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>SE_ECLIPTIC</span></span><span lang=EN-US>
and SE_NUTATION in the function </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_calc().</span></span></p>
<h2 style='margin-left:0cm;text-indent:0cm'><a name="_Toc354479576"><span
lang=EN-US>Appendix A</span></a></h2>
<h3 style='margin-left:0cm;text-indent:0cm;'><a
name="_Toc354479577"><span lang=EN-US>What is missing ?</span></a></h3>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>There are some important limits in regard
to what you can expect from an ephemeris module. We do not tell you:</span></p>
<p class=MsoNormal><a name="_Hlk477486313"><span lang=EN-US>how to draw a chart</span></a></p>
<p class=MsoNormal><a name="_Hlk477487992"><span lang=EN-US>&nbsp;</span></a></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span
style='font-family:Symbol;color:black;
letter-spacing:1.0pt'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>which </span><span style='color:black;letter-spacing:
1.0pt'>glyphs to use</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span style='color:black;letter-spacing:1.0pt'>when a
planet is stationary</span><span lang=EN-US> (it depends on you how slow you
want it to be)</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>how to compute universal time from
local time, i.e. what timezone a place is located in</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span lang=EN-US>how to compute progressions, solar
returns, composit charts, transit times and a lot else</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;'><span lang=EN-US style='font-family:
Symbol;'><3E><span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><span style='color:black;letter-spacing:1.0pt'>what the
different calendars</span><span lang=EN-US> (Julian, Gregorian, ..) mean and
when they applied.</span></p>
<h2 style='margin-left:0cm;text-indent:0cm;page-break-before:always'><a
name="_Toc354479578"><span lang=EN-US>Index</span></a></h2>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr style='height:19.35pt'>
<td width=205 style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:19.35pt'>
<p class=Textkrper-Einzug align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>Flag</span></b></p>
</td>
<td width=438 style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt;height:19.35pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>Body, Point</span></b></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477833574"><span lang=DE style='font-family:Verdana;'><span lang=DE>Default ephemeris flag</span></span></a></span></p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477320798"><span style='font-family:Verdana'>Additional asteroids</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321234"><span style='font-family:Verdana'>Ephemeris flags</span></a></span></p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477320919"><span style='font-family:Verdana'>Fictitious planets</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321208"><span style='font-family:Verdana'>Flag bits</span></a></span></p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477834622"><span style='font-family:Verdana'>Find a name</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321274"><span style='font-family:Verdana'>Speed flag</span></a></span></p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477829414"><span style='font-family:Verdana'>How to compute</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477832844"><span style='font-family:Verdana'>Special body
SE_ECL_NUT</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=438 valign=top style='width:328.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477832209"><span lang=FR style='font-family:Verdana;'>Uranian planets</span></a></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=FR>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr style='height:21.15pt'>
<td width=205 style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt;height:21.15pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=FR style='font-size:14.0pt;'>Position</span></b></p>
</td>
<td width=150 style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt;height:21.15pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>What is..</span></b></p>
</td>
<td width=288 style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:21.15pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>How to<74></span></b></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321696"><span style='font-family:Verdana'>Astrometric</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477842381"><span style='font-family:Verdana'>Ayanamsha</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlt477860200"><span style='font-family:Verdana'>Change the tidal
acceleration</span></a></span></p>
</td>
</tr>
<tr style='height:4.35pt'>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt;
height:4.35pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321673"><span style='font-family:Verdana'>Barycentric</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt;
height:4.35pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477831317"><span style='font-family:Verdana'>Dynamical Time</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt;
height:4.35pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862421"><span style='font-family:Verdana'>compute sidereal
composite house cusps</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477833734"><span style='font-family:Verdana'>Equatorial</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477830987"><span style='font-family:Verdana'>Ephemeris Time</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862144"><span style='font-family:Verdana'>compute the composite
ecliptic obliquity</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321658"><span style='font-family:Verdana'>Heliocentric</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477840429"><span style='font-family:Verdana'>Equation of time</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477837327"><span style='font-family:Verdana'>Draw the eclipse path</span></a></span></p>
</td>
</tr>
<tr style='height:16.2pt'>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt;
height:16.2pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321486"><span style='font-family:Verdana'>J2000</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt;
height:16.2pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477330118"><span style='font-family:Verdana'>Julian day</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt;
height:16.2pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477320958"><span style='font-family:Verdana'>Get obliquity and
nutation</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477325102"><span style='font-family:Verdana'>Position and Speed</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477330492"><span style='font-family:Verdana'>Universal Time</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477837444"><span style='font-family:Verdana'>Get the
umbra/penumbra limits</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477833841"><span style='font-family:Verdana'>Radians/degrees</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477861184"><span style='font-family:Verdana'>Vertex/Anivertex</span></a></span></p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477835264"><span style='font-family:Verdana'>Search for a star</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321473"><span style='font-family:Verdana'>Sidereal</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321265"><span style='font-family:Verdana'>Switch the coordinate
systems</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321643"><span style='font-family:Verdana'>Topocentric</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321511"><span style='font-family:Verdana'>Switch true/mean
equinox of date</span></a></span></p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477834072"><span style='font-family:Verdana'>True geometrical
position</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477321411"><span style='font-family:Verdana'>True/apparent</span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
<tr>
<td width=205 valign=top style='width:153.9pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477833826"><span style='font-family:Verdana'>x, y, z </span></a></span></p>
</td>
<td width=150 valign=top style='width:112.5pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=288 valign=top style='width:216.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>Errors</span></b></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>Variable</span></b></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477863570"><span style='font-family:Verdana'>Asteroids</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864589"><span style='font-family:Verdana'>Armc</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864373"><span style='font-family:Verdana'>Avoiding Koch houses</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862569"><span style='font-family:Verdana'>Ascmc[..]</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864058"><span style='font-family:Verdana'>Ephemeris path length</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477328180"><span style='font-family:Verdana'>Atpress</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477831517"><span style='font-family:Verdana'>Errors and return
values</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477328191"><span style='font-family:Verdana'>Attemp</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477831866"><span style='font-family:Verdana'>Fatal error</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477842217"><span style='font-family:Verdana'>Ayan_t0</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864194"><span style='font-family:Verdana'>House cusps beyond
the polar circle</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862529"><span style='font-family:Verdana'>Cusps[..]</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864273"><span style='font-family:Verdana'>Koch houses
limitations</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862235"><span style='font-family:Verdana'>Eps</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477863958"><span style='font-family:Verdana'>Overriding environment
variables</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329877"><span style='font-family:Verdana'>Gregflag</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477863706"><span style='font-family:Verdana'>Speeds of the fixed
stars</span></a></span></p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862719"><span lang=DE style='font-family:Verdana;'><span lang=DE>Hsys</span></span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477831658"><span lang=DE style='font-family:Verdana;'><span lang=DE>Iflag</span></span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477320729"><span lang=DE style='font-family:Verdana;'><span lang=DE>Ipl</span></span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477836150"><span style='font-family:Verdana'>Method</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477328165"><span style='font-family:Verdana'>Rsmi</span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477842160"><span style='font-family:Verdana'>Sid_mode </span></a></span></p>
</td>
</tr>
<tr>
<td width=307 valign=top style='width:230.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'>&nbsp;</p>
</td>
<td width=336 valign=top style='width:252.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477835149"><span style='font-family:Verdana'>Star</span></a></span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr style='height:21.15pt'>
<td width=211 style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt;height:21.15pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>Function</span></b></p>
</td>
<td width=432 style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt;height:21.15pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><span lang=EN-US style='font-size:14.0pt'>Description</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329169"><span style='font-family:Verdana'>Swe_azalt</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
the horizontal coordinates (</span><span class=FileName><span lang=DA
style='font-family:Verdana'>azimuth and altitude</span></span><span
lang=EN-US>)</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329516"><span style='font-family:Verdana'>Swe_azalt_rev</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>computes
either ecliptical or equatorial coordinates from azimuth and true altitude</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477320293"><span style='font-family:Verdana'>swe_calc</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>computes
the positions of planets, asteroids, lunar nodes and apogees</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477319384"><span style='font-family:Verdana'>swe_calc_ut</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoBodyText align=right style='text-align:right;layout-grid-mode:
char'><span lang=EN-US>Modified version of </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_calc</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477844023"><span style='font-family:Verdana'>swe_close</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>releases
most resources used by the Swiss Ephemeris</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk478111295"><span style='font-family:Verdana'>swe_cotrans</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Coordinate
transformation, from </span><span class=FileName><span lang=DA
style='font-family:Verdana'>ecliptic to equator</span></span><span
lang=EN-US> or vice-versa</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk478111388"><span style='font-family:Verdana'>swe_cotrans_sp</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Coordinate
transformation of </span><span class=FileName><span lang=DA style='font-family:
Verdana'>position and speed</span></span><span lang=EN-US>, from </span><span
class=FileName><span lang=DA style='font-family:Verdana'>ecliptic to equator</span></span><span
lang=EN-US> or vice-versa</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477331070"><span style='font-family:Verdana'>swe_date_conversion</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>computes a </span><span
class=FileName><span lang=DA style='font-family:Verdana'>Julian day from
year, month, day, time</span></span><span lang=EN-US> and </span><span
class=FileName><span lang=DA style='font-family:Verdana'>checks</span></span><span
lang=EN-US> whether a date is legal</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk478111399"><span style='font-family:Verdana'>swe_degnorm</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span class=FileName><span
lang=DA style='font-family:Verdana'>normalization</span></span><span
lang=EN-US> of any degree number to the range 0 ... 360</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477840778"><span style='font-family:Verdana'>swe_deltat</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
the difference between </span><span class=FileName><span lang=DA
style='font-family:Verdana'>Universal Time (UT, GMT)</span></span><span
lang=EN-US> and </span><span class=FileName><span lang=DA style='font-family:
Verdana'>Ephemeris time</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477325176"><span style='font-family:Verdana'>swe_fixstar</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>computes </span><span
class=FileName><span lang=DA style='font-family:Verdana'>fixed stars</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477325162"><span style='font-family:Verdana'>swe_fixstar_ut</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoBodyText align=right style='text-align:right;layout-grid-mode:
char'><span lang=EN-US>Modified version of </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_fixstar</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477856443"><span style='font-family:Verdana'>swe_get_ayanamsa</span></a>
</span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
the <a href="#_Hlk477842381"><span style='font-family:Verdana'>ayanamsha</span></a></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477856452"><span style='font-family:Verdana'>swe_get_ayanamsa_ut</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>Modified version of </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_get_ayanamsa</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477324852"><span style='font-family:Verdana'>swe_get_planet_name</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Finds a
planetary or asteroid </span><span class=FileName><span lang=DA
style='font-family:Verdana'>name by given number</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477840792"><span style='font-family:Verdana'>swe_get_tid_acc</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Gets the
tidal acceleration</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477862955"><span style='font-family:Verdana'>swe_house_pos</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>compute the
</span><span class=FileName><span lang=DA style='font-family:Verdana'>house
position</span></span><span lang=EN-US> of a given body for a given ARMC</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477861239"><span style='font-family:Verdana'>swe_houses</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Calculates
houses for a given date and geographic position</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477861854"><span style='font-family:Verdana'>swe_houses_armc</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>computes
houses from </span><span class=FileName><span lang=DA style='font-family:
Verdana'>ARMC</span></span><span lang=EN-US> (e.g. with the composite
horoscope which has no date)</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477861861"><span style='font-family:Verdana'>swe_houses_ex</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>the same as
</span><span class=FuncName><span lang=DA style='font-family:Verdana'>swe_houses()</span></span><span
lang=EN-US>. Has a parameter, which can be used, if </span><span
class=FileName><span lang=DA style='font-family:Verdana'><EFBFBD>sidereal</span></span><span lang=EN-US>house
positions are wanted</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329697"><span style='font-family:Verdana'>swe_julday</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Conversion
from day, month, year, time to Julian date</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326863"><span style='font-family:Verdana'>swe_lun_eclipse_how</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
the attributes of a lunar eclipse at a given time</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326807"><span style='font-family:Verdana'>swe_lun_eclipse_when</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Finds the </span><span
class=FileName><span lang=DA style='font-family:Verdana'>next lunar eclipse</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477325759"><span style='font-family:Verdana'>swe_nod_aps</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
planetary nodes and apsides: </span><span class=FileName><span lang=DA
style='font-family:Verdana'>perihelia, aphelia, second focal points of the
orbital ellipses</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477325741"><span style='font-family:Verdana'>swe_nod_aps_ut</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoBodyText align=right style='text-align:right;layout-grid-mode:
char'><span lang=EN-US>Modified version of </span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_nod_aps</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329016"><span style='font-family:Verdana'>swe_pheno</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Function
computes </span><span class=FileName><span lang=DA style='font-family:Verdana'>phase,
phase angle, elongation, apparent diameter, apparent magnitude</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477328995"><span style='font-family:Verdana'>swe_pheno_ut</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=right style='text-align:right;layout-grid-mode:char'><span
lang=EN-US>Modified version of</span><span class=FuncName><span
lang=DA style='font-family:Verdana'>swe_pheno</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329626"><span style='font-family:Verdana'>swe_refrac</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>The </span><span
class=FileName><span lang=DA style='font-family:Verdana'>true/apparent
altitude </span></span><span class=FileName><span lang=EN-US
style='font-family:Verdana;color:windowtext;'>c</span></span><span
lang=EN-US>onvertion</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477329710"><span style='font-family:Verdana'>swe_revjul </span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Conversion
from </span><span class=FileName><span lang=DA style='font-family:Verdana'>Julian
date</span></span><span lang=EN-US> to </span><span class=FileName><span
lang=DA style='font-family:Verdana'>day, month, year, time</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477327296"><span style='font-family:Verdana'>swe_rise_trans</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Computes
the times of </span><span class=FileName><span lang=DA style='font-family:
Verdana'>rising, setting and meridian transits</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477843944"><span style='font-family:Verdana'>swe_set_ephe_path</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Set
application<6F>s own </span><span class=FileName><span lang=DA style='font-family:
Verdana'>ephemeris path</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477844051"><span style='font-family:Verdana'>swe_set_jpl_file</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Sets </span><span
class=FileName><span lang=DA style='font-family:Verdana'>JPL ephemeris</span></span><span
lang=EN-US> directory path</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477842044"><span style='font-family:Verdana'>swe_set_sid_mode</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Specifies
the <a href="#_Hlk477860745"><span style='font-family:Verdana'>sidereal modes</span></a></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477840801"><span style='font-family:Verdana'>swe_set_tid_acc</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Sets </span><span
class=FileName><span lang=DA style='font-family:Verdana'>tidal acceleration</span></span><span
lang=EN-US> used in </span><span class=FuncName><span lang=DA
style='font-family:Verdana'>swe_deltat()</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477841944"><span style='font-family:Verdana'>swe_set_topo</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Sets what
geographic position is to be used before </span><span class=FileName><span
lang=DA style='font-family:Verdana'>topocentric</span></span><span
lang=EN-US> planet positions for a certain birth place can be computed</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=Textkrper-Einzug style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864660"><span style='font-family:Verdana'>swe_sidtime</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>returns </span><span
class=FileName><span lang=DA style='font-family:Verdana'>sidereal time</span></span><span
lang=EN-US> on Julian day</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477864667"><span style='font-family:Verdana'>swe_sidtime0</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>returns </span><span
class=FileName><span lang=DA style='font-family:Verdana'>sidereal time</span></span><span
lang=EN-US> on Julian day, obliquity and nutation</span></p>
<p class=MsoNormal>&nbsp;</p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326421"><span style='font-family:Verdana'>swe_sol_eclipse_how</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Calculates
the </span><span class=FileName><span lang=DA style='font-family:Verdana'>solar
eclipse</span></span><span lang=EN-US> attributes for a given </span><span
class=FileName><span lang=DA style='font-family:Verdana'>geographic position
and time</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326215"><span style='font-family:Verdana'>swe_sol_eclipse_when_glob</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>finds the </span><span
class=FileName><span lang=DA style='font-family:Verdana'>next solar eclipse
globally</span></span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326105"><span style='font-family:Verdana'>swe_sol_eclipse_when_loc</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>finds the
next solar eclipse for a given geographic position</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477326645"><span style='font-family:Verdana'>swe_sol_eclipse_where</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>finds out
the geographic position where an eclipse is</span></p>
<p class=MsoNormal><span lang=EN-US>central or maximal</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk477330339"><span style='font-family:Verdana'>swe_time_equ</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>returns the
difference between local apparent and local mean time</span></p>
</td>
</tr>
</table>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
<table border=0 cellspacing=0 cellpadding=0 style='border-collapse:collapse;'>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><b><span lang=EN-US style='font-size:14.0pt'>PlaCalc function</span></b></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal align=center style='text-align:center;layout-grid-mode:
char'><span lang=EN-US style='font-size:14.0pt'>Description</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='text-align:justify;layout-grid-mode:char'><span
lang=EN-US><a href="#_Hlk478111710"><span style='font-family:Verdana'>swe_csnorm</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Normalize
argument into interval [0..DEG360]</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US><a
href="#_Hlk478112081"><span style='font-family:Verdana'>swe_cs2degstr</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Centiseconds
-&gt; degrees string</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478112074"><span style='font-size:10.0pt'>swe_cs2lonlatstr</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Centiseconds
-&gt; longitude or latitude string</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478112061"><span style='font-size:10.0pt'>swe_cs2timestr</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Centiseconds
-&gt; time string</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478111937"><span style='font-size:10.0pt'>swe_csroundsec</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Round
second, but at 29.5959 always down</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478111943"><span style='font-size:10.0pt'>swe_d2l</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Double to
long with rounding, no overflow check</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478111951"><span style='font-size:10.0pt'>swe_day_of_week</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Day of week
Monday = 0, ... Sunday = 6</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-align:justify;text-indent:
0cm;layout-grid-mode:char'><span lang=EN-US><a href="#_Hlk478111918"><span
style='font-size:10.0pt'>swe_difcs2n</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Distance in
centisecs p1 <20> p2 normalized to [-180..180]</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478111870"><span style='font-size:10.0pt'>swe_difcsn</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Distance in
centisecs p1 <20> p2 normalized to [0..360]</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-align:justify;text-indent:
0cm;layout-grid-mode:char'><span lang=EN-US><a href="#_Hlk478111928"><span
style='font-size:10.0pt'>swe_difdeg2n</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Distance in
degrees</span></p>
</td>
</tr>
<tr>
<td width=211 valign=top style='width:158.4pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=SourceText style='margin-left:0cm;text-indent:0cm;layout-grid-mode:
char'><span lang=EN-US><a href="#_Hlk478111884"><span style='font-size:10.0pt'>swe_difdegn
</span></a></span></p>
</td>
<td width=432 valign=top style='width:324.0pt;padding:0cm 5.4pt 0cm 5.4pt'>
<p class=MsoNormal style='layout-grid-mode:char'><span lang=EN-US>Distance in
degrees</span></p>
</td>
</tr>
</table>
<p class=MsoNormal align=center style='text-align:center'><span lang=EN-US>&nbsp;</span></p>
<p class=MsoNormal align=center style='text-align:center'><span class=Inverse><span
lang=EN-US>End of SWEPHPRG.DOC</span></span></p>
</div>
</body>
</html>