This function writes in sequential mode a type 103 segment (Chebyshev polynomials of the angles and their derivatives ) in the time scale TCB 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, in the timescale TCB.
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(peph)) then
do k=0, record_count-1
! ... fill the array coefs with the coefficients of the Chebychev polynomials ...
! coefs(...) =...
enddo
ret = writeph_pck103_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(peph)
endif