File: simple_program.rst

package info (click to toggle)
calceph 4.0.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 15,944 kB
  • sloc: ansic: 21,414; fortran: 4,054; python: 1,569; sh: 197; makefile: 5
file content (97 lines) | stat: -rw-r--r-- 2,442 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
.. ifconfig:: calcephapi in ('C')

    ::
    
        #include <stdio.h>
        #include "calceph.h"

        int main(void)
        {
         double AU;
         t_calcephbin *peph;
 
         peph = calceph_open("example1.dat");
         if (peph)
         {
           if (calceph_getconstant(peph, "AU", &AU)) 
           {
                printf("AU=%23.16E\n", AU);
           }
       
           calceph_close(peph);
         }
         return 0;
        }

.. ifconfig:: calcephapi in ('F2003')

    ::
    
       program f2003multiple
           USE, INTRINSIC :: ISO_C_BINDING
           use calceph
           integer res
           real(8) AU
           TYPE(C_PTR) :: peph
           
           peph = calceph_open("example1.dat"//C_NULL_CHAR)
           if (C_ASSOCIATED(peph)) then
           
              if (calceph_getconstant(peph, "AU"//C_NULL_CHAR, AU).eq.1) then
                   write (*,*) "AU=", AU
              endif

              call calceph_close(peph)
            endif
       stop
       end
 
.. ifconfig:: calcephapi in ('F90')

    ::
    
       program F90example
           implicit none
           include 'f90calceph.h'
           integer res
           double precision AU
           integer*8 :: peph
           
           res = f90calceph_open(peph, "example1.dat")
           if (res.eq.1) then
             write (*,*) "The ephemeris is already opened"
             if (f90calceph_getconstant(peph, "AU", AU).eq.1) then
                   write (*,*) "AU=", AU
             endif
             call f90calceph_close(peph)
             write (*,*) "The ephemeris is already closed"
           endif
       stop
       end

.. ifconfig:: calcephapi in ('Python')

    ::

        from calcephpy import *
        peph = CalcephBin.open("example1.dat")
        AU = peph.getconstant("AU")
        jd0 = 2451542
        dt = 0.5
        PV = peph.compute_unit(jd0, dt, NaifId.MOON, NaifId.EARTH,
                               Constants.UNIT_KM+Constants.UNIT_SEC+Constants.USE_NAIFID)
        print(PV)
        peph.close()

.. ifconfig:: calcephapi in ('Mex')

    ::

        peph = CalcephBin.open('example1.dat');
        AU = peph.getconstant('AU')
        jd0 = 2451542
        dt = 0.5
        PV = peph.compute_unit(jd0, dt, NaifId.MOON, NaifId.EARTH,
                               Constants.UNIT_KM+Constants.UNIT_SEC+Constants.USE_NAIFID);
        disp(PV)
        peph.close();