diff --git a/libslam b/libslam index c544d6d..a5c14ee 160000 --- a/libslam +++ b/libslam @@ -1 +1 @@ -Subproject commit c544d6d8cce84335442c6d01c3620ad04ec62e85 +Subproject commit a5c14ee4ebecf6469924dbfc23eeb3d8e61eb893 diff --git a/src/neptuneClass.f90 b/src/neptuneClass.f90 index e65d5dd..cbf9d3c 100644 --- a/src/neptuneClass.f90 +++ b/src/neptuneClass.f90 @@ -125,7 +125,6 @@ module neptuneClass ! Variables ! !----------------------------------------------------------------------- - integer :: output_step ! output time step in seconds, 5 mins as default integer, public :: input_type_cov ! input type for covariance matrix logical, dimension(2), public :: flag_init_tolerances ! rel. and abs. tolerance initialization for numerical integration @@ -145,6 +144,7 @@ module neptuneClass type(covariance_t) :: initial_covariance !< initial covariance matrix written to output real(dp) :: progress_step !< step threshold for progress output to file + real(dp) :: output_step ! output time step that can touch double precision !======================================================================= ! @@ -286,7 +286,7 @@ type(Neptune_class) function constructor() constructor%reduction = Reduction_type() constructor%correlation_model = Correlation_class() - constructor%output_step = 300 ! output time step in seconds, 5 mins as default + constructor%output_step = 300.0 ! output time step in seconds, 5 mins as default constructor%input_type_cov = INPUT_UNDEFINED ! input type for covariance matrix constructor%flag_init_tolerances = (/.false.,.false./) ! rel. and abs. tolerance initialization for numerical integration @@ -463,7 +463,6 @@ subroutine initialize_input_array(this) ! INTEGER parameters call this%set_input(parName=C_GEOPOTENTIAL, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_SAT_PROPERTIES, valType='integer', initFlag=.true.) - call this%set_input(parName=C_OUTPUT_STEP, valType='integer', initFlag=.true.) call this%set_input(parName=C_PAR_INT_COV_METHOD, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_GEO_MODEL, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_AP_FORECAST, valType='integer', initFlag=.true.) @@ -483,6 +482,7 @@ subroutine initialize_input_array(this) call this%set_input(parName=C_PAR_INT_COV_STEP, valType='double', initFlag=.true.) call this%set_input(parName=C_PAR_EARTH_RADIUS, valType='double', initFlag=.true.) call this%set_input(parName=C_OPT_SOL_FORECAST, valType='double', initFlag=.true.) + call this%set_input(parName=C_OUTPUT_STEP, valType='double', initFlag=.true.) ! this should be double for the fix ! ON/OFF parameters (also set default values, if available) do i = 1, this%derivatives_model%get_neptune_perturbation_number() @@ -1713,7 +1713,7 @@ integer function setNeptuneVar_char( & ! CASE for INTEGER parameters ! !------------------------ - case(C_GEOPOTENTIAL, C_OPT_SAT_PROPERTIES, C_OUTPUT_STEP, C_PAR_INT_COV_METHOD, & + case(C_GEOPOTENTIAL, C_OPT_SAT_PROPERTIES, C_PAR_INT_COV_METHOD, & C_OPT_GEO_MODEL, C_OPT_AP_FORECAST, C_OPT_STORE_DATA, C_COV_GEOPOTENTIAL, & C_PAR_INT_METHOD, C_OPT_ATMOSPHERE_MODEL) @@ -1761,12 +1761,6 @@ integer function setNeptuneVar_char( & call this%set_input(parName=C_OPT_STORE_DATA, val=val, set=.true.) call this%setStep(itemp) - !** Output - case(C_OUTPUT_STEP) - call this%set_input(parName=C_OUTPUT_STEP, val=val, set=.true.) - call this%output%write_to_output(C_OUTPUT_STEP, itemp) - this%output_step = itemp - !** state vector integration method case(C_PAR_INT_METHOD) call this%set_input(parName=C_PAR_INT_METHOD, val=val, set=.true.) @@ -1791,7 +1785,7 @@ integer function setNeptuneVar_char( & ! CASE for REAL parameters ! !------------------------- - case(C_PAR_MASS, C_PAR_CROSS_SECTION, C_PAR_CDRAG, & + case(C_PAR_MASS, C_PAR_CROSS_SECTION, C_PAR_CDRAG, C_OUTPUT_STEP, & C_PAR_CREFL, C_PAR_REENTRY, C_PAR_INT_RELEPS, C_PAR_INT_ABSEPS, & C_PAR_INT_COV_STEP, C_PAR_EARTH_RADIUS, & C_OPT_SOL_FORECAST) @@ -1860,6 +1854,12 @@ integer function setNeptuneVar_char( & call this%set_input(parName=C_OPT_SOL_FORECAST, val=val, set=.true.) call this%atmosphere_model%setSolarFluxForecast(dtemp) + !** Output + case(C_OUTPUT_STEP) + call this%set_input(parName=C_OUTPUT_STEP, val=val, set=.true.) + call this%output%write_to_output(C_OUTPUT_STEP, itemp) + this%output_step = dtemp + end select end if @@ -2736,7 +2736,6 @@ subroutine initializeInputArray(this) ! INTEGER parameters call this%set_input(parName=C_GEOPOTENTIAL, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_SAT_PROPERTIES, valType='integer', initFlag=.true.) - call this%set_input(parName=C_OUTPUT_STEP, valType='integer', initFlag=.true.) call this%set_input(parName=C_PAR_INT_COV_METHOD, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_GEO_MODEL, valType='integer', initFlag=.true.) call this%set_input(parName=C_OPT_AP_FORECAST, valType='integer', initFlag=.true.) @@ -2756,6 +2755,8 @@ subroutine initializeInputArray(this) call this%set_input(parName=C_PAR_INT_COV_STEP, valType='double', initFlag=.true.) call this%set_input(parName=C_PAR_EARTH_RADIUS, valType='double', initFlag=.true.) call this%set_input(parName=C_OPT_SOL_FORECAST, valType='double', initFlag=.true.) + call this%set_input(parName=C_OUTPUT_STEP, valType='double', initFlag=.true.) ! this should be double + ! ON/OFF parameters (also set default values, if available) do i = 1, this%derivatives_model%get_neptune_perturbation_number() diff --git a/src/neptuneOutput.f90 b/src/neptuneOutput.f90 index 518e315..5cc19ae 100644 --- a/src/neptuneOutput.f90 +++ b/src/neptuneOutput.f90 @@ -65,7 +65,7 @@ module neptuneOutput use slam_strings, only: toLowercase use thirdbody, only: ThirdBody_class use tides, only: Tides_class, SOLID_TIDES, OCEAN_TIDES - use slam_time, only: time_t, mjd2gd, dayFraction2hms, date2string + use slam_time, only: time_t, mjd2gd, dayFraction2hms, date2string, date2longstring, LEN_TIME_STRING_LONG use slam_types, only: dp use slam_units, only: getUnitString, UNIT_RAD, C_UNIT_DEG use version, only: Version_class @@ -1142,7 +1142,6 @@ subroutine output( this, & character(len=*), parameter :: csubid = "output" integer :: i,j,k ! loop counter - integer :: isec ! seconds integer :: orbit_type ! orbit type logical :: flag_cov_uvw ! indicating that covariance matrix already transformed to UVW frame @@ -1165,6 +1164,7 @@ subroutine output( this, & type(covariance_t) :: covar_out_uvw ! covariance matrix in UVW frame type(kepler_t) :: kepler ! kepler elements type(time_t) :: epoch ! output epoch + character(LEN_TIME_STRING_LONG) :: epoch_string if(isControlled()) then if(hasToReturn()) return @@ -1176,9 +1176,9 @@ subroutine output( this, & flag_itrf = .false. epoch%mjd = this%start_epoch%mjd + time_offset/86400.d0 - call mjd2gd(epoch%mjd,epoch%year,epoch%month,epoch%day,fracday) - call dayFraction2HMS(fracday,epoch%hour,epoch%minute,isec) + call dayFraction2HMS(fracday,epoch%hour,epoch%minute,epoch%second) + epoch_string = date2longstring(epoch) do i = 1, size(this%output_arr) @@ -1199,25 +1199,25 @@ subroutine output( this, & case(ELLIPTICAL_INCLINED) - write(this%output_arr(i)%file_unit,110) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,110) epoch_string, epoch%mjd, & kepler%sma, kepler%ecc, kepler%inc*rad2deg, kepler%raan*rad2deg, & kepler%aop*rad2deg, kepler%tran*rad2deg, kepler%man*rad2deg case(CIRCULAR_INCLINED) - write(this%output_arr(i)%file_unit,110) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,110) epoch_string, epoch%mjd, & kepler%sma, kepler%ecc, kepler%inc*rad2deg, kepler%raan*rad2deg, & 0.d0, kepler%arglat*rad2deg, kepler%man*rad2deg case(ELLIPTICAL_EQUATORIAL) - write(this%output_arr(i)%file_unit,110) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,110) epoch_string, epoch%mjd, & kepler%sma, kepler%ecc, kepler%inc*rad2deg, 0.d0, kepler%lonper*rad2deg, & kepler%tran*rad2deg, kepler%man*rad2deg case(CIRCULAR_EQUATORIAL) - write(this%output_arr(i)%file_unit,110) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,110) epoch_string, epoch%mjd, & kepler%sma, kepler%ecc, kepler%inc*rad2deg, 0.d0, 0.d0, kepler%truelon*rad2deg, & kepler%man*rad2deg @@ -1225,14 +1225,14 @@ subroutine output( this, & case(OUTPUT_CSV) !** cartesian state vs. time - write(this%output_arr(i)%file_unit,120) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,120) epoch_string, epoch%mjd, & state_out%r, state_out%v case(OUTPUT_VAR_ECI) !** variances (diagonal elements of covariance matrix) in ECI frame vs. time if(numint%getCovariancePropagationFlag()) then - write(this%output_arr(i)%file_unit,150) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,150) epoch_string, epoch%mjd, & (covar_out%elem(j,j), j=1,6) end if @@ -1251,7 +1251,7 @@ subroutine output( this, & end if - write(this%output_arr(i)%file_unit,150) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,150) epoch_string, epoch%mjd, & (covar_out_uvw%elem(j,j), j=1,6) ! (sqrt(max(0.d0,covar_out_uvw%elem(j,j)))*1.d3, j=1,6) @@ -1261,7 +1261,7 @@ subroutine output( this, & if(numint%getCovariancePropagationFlag()) then - write(this%output_arr(i)%file_unit,160) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,160) epoch_string, epoch%mjd, & ((covar_out%elem(j,k), k=1,j-1), j=2,6) end if @@ -1280,7 +1280,7 @@ subroutine output( this, & end if - write(this%output_arr(i)%file_unit,160) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,160) epoch_string, epoch%mjd, & ((covar_out_uvw%elem(j,k), k=1,j-1), j=2,6) end if @@ -1313,7 +1313,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) case(OUTPUT_ACG) !** acceleration due to geopotential vs. time @@ -1348,7 +1348,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) case(OUTPUT_ACD) @@ -1383,7 +1383,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1404,7 +1404,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1425,7 +1425,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1448,7 +1448,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1471,7 +1471,7 @@ subroutine output( this, & !** convert acceleration to UVW coordinates call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1503,7 +1503,7 @@ subroutine output( this, & call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1535,7 +1535,7 @@ subroutine output( this, & call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1556,7 +1556,7 @@ subroutine output( this, & call reduction%eci2uvw(state_out%r, state_out%v, acc_out, acc_out_uvw) - write(this%output_arr(i)%file_unit,130) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,130) epoch_string, epoch%mjd, & (acc_out(j), j=1,3), (acc_out_uvw(j), j=1,3), mag(acc_out) end if @@ -1585,7 +1585,7 @@ subroutine output( this, & crossSection = satellite_model%getObjectCrossSection(solarsystem_model, reduction, epoch%mjd, state_out%r, v_rel) if(hasFailed()) return - write(this%output_arr(i)%file_unit,170) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, & + write(this%output_arr(i)%file_unit,170) epoch_string, epoch%mjd, & rho, crossSection*1.d6, (v_rel(j), j=1,3) ! '1.d6' for cross-section to convert to m**2 end if @@ -1624,7 +1624,7 @@ subroutine output( this, & call getGeodeticLatLon(r_itrf, alt, lat, lon) - write(this%output_arr(i)%file_unit,140) epoch%year, epoch%month, epoch%day, epoch%hour, epoch%minute, isec, epoch%mjd, alt, lat*rad2deg, lon*rad2deg + write(this%output_arr(i)%file_unit,140) epoch_string, epoch%mjd, alt, lat*rad2deg, lon*rad2deg end select @@ -1639,13 +1639,15 @@ subroutine output( this, & call checkOut(csubid) end if -110 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,2x,f12.5,2x,f10.8,5(1x,f12.6)) -120 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,3(1x,f14.6),3(1x,f12.8)) -130 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,7(1x,e16.9e2)) -140 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,1x,f9.2,2(1x,f8.3)) -150 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,6(1x,e15.8e2)) -160 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,15(1x,e15.8e2)) -170 format(4x,i4.4,2('-',i2.2),1x,i2.2,2(':',i2.2),5x,f16.9,1x,e15.8e2,x,f10.4,3(1x,f12.8)) +! Theoretically a value for epoch_string should be set as 27. But as it's a changing variable it's set +! as empty to import it from the length of epoch_string itself +110 format(4x,a,5x,f16.9,2x,f12.5,2x,f10.8,5(1x,f12.6)) +120 format(4x,a,5x,f16.9,3(1x,f14.6),3(1x,f12.8)) +130 format(4x,a,5x,f16.9,7(1x,e16.9e2)) +140 format(4x,a,5x,f16.9,1x,f9.2,2(1x,f8.3)) +150 format(4x,a,5x,f16.9,6(1x,e15.8e2)) +160 format(4x,a,5x,f16.9,15(1x,e15.8e2)) +170 format(4x,a,5x,f16.9,1x,e15.8e2,x,f10.4,3(1x,f12.8)) end subroutine output @@ -1724,8 +1726,8 @@ subroutine writeInput2Header( this, & write(ich,'(A)') '# Input type: '//trim(ctemp) write(ich,'(A)') '# Reference Frame: '//C_REF_FRAME_GCRF write(ich,'(A)') '#' - write(ich,'(a16,a20)') '# Begin epoch: ', trim(adjustl(date2string(this%start_epoch))) - write(ich,'(a16,a20)') '# End epoch: ', trim(adjustl(date2string(this%end_epoch))) + write(ich,'(a16,a20)') '# Begin epoch: ', trim(adjustl(date2longstring(this%start_epoch))) + write(ich,'(a16,a20)') '# End epoch: ', trim(adjustl(date2longstring(this%end_epoch))) write(ich,'(A)') '#' if(this%isSetInitialState) then @@ -2156,7 +2158,7 @@ subroutine write_header( & write(ich,'(A,$)') " Error Single Integration " write(ich,'(A)') " Call No. [Flag] " - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]__" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "_____[JD - 2400000.5]_____" write(ich,'(A,$)') "____________[s]___________" do i2 = 1,4 @@ -2203,7 +2205,7 @@ subroutine write_header( & write(ich,'(A,$)') " Velocity-Y " write(ich,'(A)') " Velocity-Z " - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "___[JD - 2400000.5]___" do i2 = 1,3 @@ -2258,7 +2260,7 @@ subroutine write_header( & write(ich,'(A,$)') " TRAN " write(ich,'(A)') " MEAN " - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "___[JD - 2400000.5]___" write(ich,'(A,$)') "_____[km]____" @@ -2430,7 +2432,7 @@ subroutine write_header( & write(ich,'(A,$)') " Acc.-W " write(ich,'(A)') " Acc. Total " - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "___[JD - 2400000.5]___" do i2 = 1,7 @@ -2475,7 +2477,7 @@ subroutine write_header( & write(ich,'(A,$)') " Lat. " write(ich,'(A)') " Lon. " - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "___[JD - 2400000.5]____" write(ich,'(A,$)') "_[km]___" write(ich,'(A,$)') "___[deg]_" @@ -2517,7 +2519,7 @@ subroutine write_header( & write(ich,'(A,$)') " Cross-section " write(ich,'(A)') " Rel. velocity" - write(ich,'(A,$)') "#_ [YYYY-MM-DD hh:mm:ss]" + write(ich,'(A,$)') "#_ [YYYY-MM-DDThh:mm:ss.ssssssZ]" write(ich,'(A,$)') "___[JD - 2400000.5]____" write(ich,'(A,$)') "__[g/cm**3]___" write(ich,'(A,$)') "___[m**2]___" diff --git a/work/input/neptune.inp b/work/input/neptune.inp index 42f4e78..2c22ce4 100644 --- a/work/input/neptune.inp +++ b/work/input/neptune.inp @@ -57,8 +57,8 @@ # - gregorian date: YYYY MM DD HH MM SS.SSS... (separated by blanks) # - julian day: XXXXXXX.XX... (no blanks) # - 2016 07 20 00 31 50.00 2440980.0 Begin date - 2016 08 03 00 31 50.00 2441345.0 End date + 2016 07 20 00 31 00.00 2440980.0 Begin date + 2016 08 03 00 31 00.00 2441345.0 End date # #------------------------------------------------------------------------------ # @@ -200,7 +200,7 @@ # # Output time step (in seconds) # - 60 + 60.0 # # Time step for ephemerides in internal array (available via 'getNeptuneData' API) # (in seconds - IF not '0' then output time step (above) will be overwritten by this