This function writes in sequential mode a type 3 segment (Chebyshev polynomials of the angles and their derivatives) in the time scale TDB to the PCK file associated to the ephemeris descriptor eph.
The polynomials array must be of size record_count*(deg+1)*6 and have the following structure :
E1's 1st coef 1st record |
... |
E1's (deg + 1)th coef 1st record |
E2's 1st coef 1st record |
... |
E2's (deg + 1)th coef 1st record |
E3's 1st coef 1st record |
... |
E3's (deg + 1)th coef 1st record |
dE1's 1st coef 1st record |
... |
dE1's (deg + 1)th coef 1st record |
dE2's 1st coef 1st record |
... |
dE2's (deg + 1)th coef 1st record |
dE3's 1st coef 1st record |
... |
dE3's (deg + 1)th coef 1st record |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
E1's 1st coef (record_count)th record |
... |
E1's (deg + 1)th coef (record_count)th record |
E2's 1st coef (record_count)th record |
... |
E2's (deg + 1)th coef (record_count)th record |
E3's 1st coef (record_count)th record |
... |
E3's (deg + 1)th coef (record_count)th record |
dE1's 1st coef (record_count)th record |
... |
dE1's (deg + 1)th coef (record_count)th record |
dE2's 1st coef (record_count)th record |
... |
dE2's (deg + 1)th coef (record_count)th record |
dE3's 1st coef (record_count)th record |
... |
dE3's (deg + 1)th coef (record_count)th record |
The following example creates a new ephemeris file ephemeris.bsp with segment of type 3 for the orientation of one body.
USE, INTRINSIC :: ISO_C_BINDING
use calceph
TYPE(C_PTR) :: weph
INTEGER len_timespan
REAL(8) :: jd_start, jd_end
INTEGER frame, record_count, degree, k, ret
REAL(8), dimension(780) :: coefs ! size = 780 = record_count * (degree+1) * 6 components
len_timespan = 32 ! days
frame = 1 ! ICRF
record_count = 10
degree = 12
jd_start = 2460000
jd_end = jd_start+record_count*len_timespan
weph = writeph_pck_create("ephemeris.bpc"//C_NULL_CHAR, "planet_2"//C_NULL_CHAR, 0)
if (C_ASSOCIATED(weph)) then
do k=0, record_count-1
! ... fill the array coefs with the coefficients of the Chebychev polynomials ...
! coefs(...) =...
enddo
ret = writeph_pck3_seq_write(weph, 4000099, frame, jd_start, 0.0, jd_end, 0.0,
len_timespan, coefs, record_count, degree+1, "seg_planet"//C_NULL_CHAR)
call writeph_close(weph)
endif