Generate the mkspk setup file. See kernel/mkspk for an example.
See also: MKSPK User's Guide
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | filename |
subroutine generate_mkspk_setup_file(filename) character(len=*),intent(in) :: filename integer :: iunit, istat open(newunit=iunit, file=trim(filename), status='REPLACE', iostat=istat) if (istat/=0) error stop 'error opening file: '//trim(filename) write(iunit, '(A)') "\begindata" write(iunit, '(A)') "" write(iunit, '(A)') "INPUT_DATA_TYPE = 'STATES'" write(iunit, '(A)') "DATA_ORDER = 'EPOCH X Y Z VX VY VZ'" write(iunit, '(A)') "DATA_DELIMITER = ';'" write(iunit, '(A)') "TIME_WRAPPER = '# ETSECONDS'" write(iunit, '(A)') "CENTER_ID = 301" write(iunit, '(A)') "CENTER_NAME = 'MOON'" write(iunit, '(A)') "REF_FRAME_NAME = 'J2000'" write(iunit, '(A)') "INPUT_DATA_UNITS = ('ANGLES=DEGREES' 'DISTANCES=km')" write(iunit, '(A)') "PRODUCER_ID = 'HALO'" write(iunit, '(A)') "OUTPUT_SPK_TYPE = "//int_to_string(output_spk_type) write(iunit, '(A)') "POLYNOM_DEGREE = "//int_to_string(polynom_degree) write(iunit, '(A)') "SEGMENT_ID = '"//segment_id//"'" write(iunit, '(A)') "OBJECT_ID = "//int_to_string(object_id) write(iunit, '(A)') "OBJECT_NAME = '"//trim(object_name)//"'" write(iunit, '(A)') "LEAPSECONDS_FILE = '"//leapseconds_file//"'" close(iunit, iostat=istat) end subroutine generate_mkspk_setup_file