📄 ppf_orbit_c.c
字号:
} } } n = 0; sprintf(msg[n++], "- mjdr_t[0]: %lf", mjdr_t[0] ); sprintf(msg[n++], "- mjdr_t[1]: %lf", mjdr_t[1] ); sprintf(msg[n++], "- xm_t[0]: %lf", xm_t[0] ); sprintf(msg[n++], "- xm_t[1]: %lf", xm_t[1] ); sprintf(msg[n++], "- xm_t[2]: %lf", xm_t[2] ); sprintf(msg[n++], "- xm_t[3]: %lf", xm_t[3] ); sprintf(msg[n++], "- xm_t[4]: %lf", xm_t[4] ); sprintf(msg[n++], "- xm_t[5]: %lf", xm_t[5] ); sprintf(msg[n++], "- x_t[0]: %lf", x_t[0] ); sprintf(msg[n++], "- x_t[1]: %lf", x_t[1] ); sprintf(msg[n++], "- x_t[2]: %lf", x_t[2] ); sprintf(msg[n++], "- x_t[3]: %lf", x_t[3] ); sprintf(msg[n++], "- x_t[4]: %lf", x_t[4] ); sprintf(msg[n++], "- x_t[5]: %lf", x_t[5] ); sprintf(msg[n++], "- acc_t[0]: %lf", acc_t[0] ); sprintf(msg[n++], "- acc_t[1]: %lf", acc_t[1] ); sprintf(msg[n++], "- acc_t[2]: %lf", acc_t[2] ); po_print_msg(&n, msg); for (k=0; k<54; k++) { sprintf(msg[k], "- res_ppforb_t[%d]: %lf", k, res_ppforb_t[k] ); } po_print_msg(&k, msg); } /* Calling po_interpol (initialization) *//* ------------------------------------ */ mode = PO_INIT_FILE+PO_INTERPOL_RES_BAS+PO_INTERPOL_RES_AUX+PO_INTERPOL_RES_BAS_D+PO_INTERPOL_RES_AUX_D+PO_INTERPOL_RES_BAS_2D+PO_INTERPOL_RES_AUX_2D; choice = PO_ONLY_ESOC_RESTITUTED; ndc = ndl = ner = 1; mdjr0 = -2455.947; mdjr1 = -2455.886; doris_precise[0] = &file1[0]; doris_prelim[0] = &file2[0]; esoc_rest[0] = &file3[0]; n = 0; sprintf(msg[n++], "\n\nPO_INTERPOL initialization\n"); po_print_msg(&n, msg); status = po_interpol(&mode, &choice, &ndc , doris_precise, &ndl , doris_prelim, &ner , esoc_rest, &mdjr0 , &mdjr1, mdjp, x, pos, vel, acc, &selected, res , ierr); if (status != PO_OK) { func_id = PO_INTERPOL_ID; po_vector_msg(&func_id, ierr, &n, msg); po_print_msg(&n, msg); if (status <= PO_ERR) return(PO_ERR); } n = 0; sprintf(msg[n++], "------ selected:%ld", selected); po_print_msg(&n,msg); /* Calling po_interpol (interpolation mode) *//* ---------------------------------------- */ mode = PO_INTERPOLATE+PO_INTERPOL_RES_BAS+PO_INTERPOL_RES_AUX+PO_INTERPOL_RES_AUX; choice = PO_AUTO_SELECT; mdjr0 = (-2455.947+(-2455.886))/2.0; /* Desidered time for interpolation = UTC time in MJD2000 [days] */ n = 0; sprintf(msg[n++], "\n\nPO_INTERPOL interpolation\n"); po_print_msg(&n, msg); status = po_interpol(&mode, &dummy_c, &dummy_n , &dummy_file[0], &dummy_n , &dummy_file[0], &dummy_n , &dummy_file[0], &mdjr0 , &dummy, mdjp, x, pos, vel, acc, &selected , res , ierr); if (status != PO_OK) { func_id = PO_INTERPOL_ID; po_vector_msg(&func_id, ierr, &n, msg); po_print_msg(&n, msg); if (status <= PO_ERR) return(PO_ERR); } n=0; sprintf(msg[n++], "------ time: %18.12lf %18.12lf", mdjp[0], mdjp[1] ); sprintf(msg[n++], "------ pos: %18.12lf %18.12lf %18.12lf", pos[0], pos[1], pos[2] ); sprintf(msg[n++], "------ vel: %18.12lf %18.12lf %18.12lf", vel[0], vel[1], vel[2] ); sprintf(msg[n++], "------ selected:%ld", selected); sprintf(msg[n++], "------ nodal period: %18.12lf", res[52] ); sprintf(msg[n++], "------ UTC of next ascending node: %18.12lf", res[53] ); po_print_msg(&n,msg); /* Calling po_genops *//* ----------------- */ mode = PO_ALL_REC; /* DORIS navigation file records selection = all records (NOMINAL) */ choice = PO_AUTO_FILE; /* File selection = automatic selection (NOMINAL) */#ifdef PL_WINDOWS strcpy(esoc_pred,"..\\data\\AUX_FPO_AXTFOS19970312_184232_00000000A018_00062_01000_0000.N1_bef"); strcpy(doris_nav,"..\\data\\DOR_NAV_0PTCTD19940630_194000_00000000A001_RRRRR_AAAAA_0000.N1_N01");#else strcpy(esoc_pred,"../data/AUX_FPO_AXTFOS19970312_184232_00000000A018_00062_01000_0000.N1_bef"); strcpy(doris_nav,"../data/DOR_NAV_0PTCTD19940630_194000_00000000A001_RRRRR_AAAAA_0000.N1_N01");#endif mjd0=16251.0+((72760.0-28.0)/86400.)-18262.0; mjd1=16251.0+((78830.0-28.0)/86400.)-18262.0; status = po_genops(&mode, &choice, esoc_pred, doris_nav, &mjd0, &mjd1, mjdp, pos, vel, &selected, res_g, ierr); n = 0; sprintf(msg[n++], "\n\nPO_GENOPS\n"); po_print_msg(&n, msg); if (status != PO_OK) { func_id = PO_GENOPS_ID; po_vector_msg(&func_id, ierr, &n, msg); po_print_msg(&n, msg); if (status <= PO_ERR) return(PO_ERR); } n = 0; sprintf(msg[n++], "------ time: %18.12lf %18.12lf", mjdp[0], mjdp[1] ); sprintf(msg[n++], "------ pos: %18.12lf %18.12lf %18.12lf", pos[0], pos[1], pos[2] ); sprintf(msg[n++], "------ vel: %18.12lf %18.12lf %18.12lf", vel[0], vel[1], vel[2] ); sprintf(msg[n++], "------ selected:%ld", selected); po_print_msg(&n,msg); /* Calling po_ppforb (initialisation mode) *//* --------------------------------------- */ mode_t = PO_INIT; /* Initialization using the output of po_genops */ n = 0; sprintf(msg[n++], "\n\nPO_PPFORB initialization\n"); po_print_msg(&n, msg); status = po_ppforb(&mode_t, mjdr_t, xm_t, mjdp, x_t, pos, vel, acc_t, res_ppforb_t, ierr_ppforb_t); if (status != PO_OK) { func_id = PO_PPFORB_ID; po_vector_msg(&func_id, ierr_ppforb_t, &n, msg); po_print_msg(&n, msg); if (status <= PO_ERR) return(PO_ERR); } n = 0; sprintf(msg[n++], "- mjdr_t[0]: %lf", mjdr_t[0] ); sprintf(msg[n++], "- mjdr_t[1]: %lf", mjdr_t[1] ); sprintf(msg[n++], "- xm_t[0]: %lf", xm_t[0] ); sprintf(msg[n++], "- xm_t[1]: %lf", xm_t[1] ); sprintf(msg[n++], "- xm_t[2]: %lf", xm_t[2] ); sprintf(msg[n++], "- xm_t[3]: %lf", xm_t[3] ); sprintf(msg[n++], "- xm_t[4]: %lf", xm_t[4] ); sprintf(msg[n++], "- xm_t[5]: %lf", xm_t[5] ); sprintf(msg[n++], "- x_t[0]: %lf", x_t[0] ); sprintf(msg[n++], "- x_t[1]: %lf", x_t[1] ); sprintf(msg[n++], "- x_t[2]: %lf", x_t[2] ); sprintf(msg[n++], "- x_t[3]: %lf", x_t[3] ); sprintf(msg[n++], "- x_t[4]: %lf", x_t[4] ); sprintf(msg[n++], "- x_t[5]: %lf", x_t[5] ); sprintf(msg[n++], "- acc_t[0]: %lf", acc_t[0] ); sprintf(msg[n++], "- acc_t[1]: %lf", acc_t[1] ); sprintf(msg[n++], "- acc_t[2]: %lf", acc_t[2] ); po_print_msg(&n, msg); for (k=0; k<54; k++) { sprintf(msg[k], "- res_ppforb_t[%d]: %lf", k, res_ppforb_t[k] ); } po_print_msg(&k, msg); /* CAREFUL here, po_print_msg handles only MAX_COD messages */ /* look up ppf_lib.h for MAX_COD *//* Calling po_ppforb (propagation mode) *//* ------------------------------------ */ mode_t = PO_PROPAG; /* Propagate using absolute time */ time_t[0]= mjd0; /* Propagation time UTC [mjd2000] */ time_t[1]= dummy; /* DUMMY = delta UT1 of the state vector used at initialization */ n = 0; sprintf(msg[n++], "\n\nPO_PPFORB propagation\n"); po_print_msg(&n, msg); status = po_ppforb(&mode_t, mjdr_t, xm_t, time_t, x_t, pos_t, vel_t, acc_t, res_ppforb_t, ierr_ppforb_t); if (status != PO_OK) { func_id = PO_PPFORB_ID; po_vector_msg(&func_id, ierr_ppforb_t, &n, msg); po_print_msg(&n, msg); if (status <= PO_ERR) return(PO_ERR); } n = 0; sprintf(msg[n++], "- mjdr_t[0]: %lf", mjdr_t[0] ); sprintf(msg[n++], "- mjdr_t[1]: %lf", mjdr_t[1] ); sprintf(msg[n++], "- xm_t[0]: %lf", xm_t[0] ); sprintf(msg[n++], "- xm_t[1]: %lf", xm_t[1] ); sprintf(msg[n++], "- xm_t[2]: %lf", xm_t[2] ); sprintf(msg[n++], "- xm_t[3]: %lf", xm_t[3] ); sprintf(msg[n++], "- xm_t[4]: %lf", xm_t[4] ); sprintf(msg[n++], "- xm_t[5]: %lf", xm_t[5] ); sprintf(msg[n++], "- x_t[0]: %lf", x_t[0] ); sprintf(msg[n++], "- x_t[1]: %lf", x_t[1] ); sprintf(msg[n++], "- x_t[2]: %lf", x_t[2] ); sprintf(msg[n++], "- x_t[3]: %lf", x_t[3] ); sprintf(msg[n++], "- x_t[4]: %lf", x_t[4] ); sprintf(msg[n++], "- x_t[5]: %lf", x_t[5] ); sprintf(msg[n++], "- acc_t[0]: %lf", acc_t[0] ); sprintf(msg[n++], "- acc_t[1]: %lf", acc_t[1] ); sprintf(msg[n++], "- acc_t[2]: %lf", acc_t[2] ); po_print_msg(&n, msg); for (k=0; k<54; k++) { sprintf(msg[k], "- res_ppforb_t[%d]: %lf", k, res_ppforb_t[k] ); } po_print_msg(&k, msg); return(PO_OK);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -