This file chronicles the changes to the ACE Science Center ACE level 1
processing software. For ACE, level1 and Browse parameter processing are
performed in parallel, using the same software, so Browse parameter code
changes are included here also.


3.2 -> 3.3	2010-01-15
CRIS    - This change is due to the implementation of improved Level 1 data
          processing for the CRIS instrument. There are no (intentional)
	  changes in the data processing for other instruments.

********** No increment to version number  2004/9/17
EPAM    - Switch Ion browse params to LEMS120 telescope after 2003-302
	  
********** No increment to version number  2002/12/11
ULEIS   - Browse data reprocessed using new full-mission calibration data
          from ULEIS team
	  
********** No increment to version number  2002/02/11
EPAM    - Excluded solar sectors from EPAM P5 and P7 browse params,
          these sectors were already excluded from the P1 and P3 channels.
	  
********** No increment to version number  2001/11/24
MAG     - Added code to read MAG cal data from an external file, for
          browse data processing
SIS     - New SIS browse code

3.1 -> 3.2      2001/04/16
SIS     - Implemented new SIS Level 1 routines to handle change in
          instrument configuration on (reconfig occurred March 27 2001)

3.0 -> 3.1      2000/11/21
SIS     - Implemented new SIS Browse routines to handle change in
          instrument configuration.

********** No increment to version number  1999/12/13
MAG     - New Browse zeros and gains from Chuck Smith
SWICS   - Correct marking of bad EDB's in SWICS Browse output

2.9 -> 3.0	1999/09/01
MAG     - QAC was not being set correctly in fft and snapshot data records.
          MAG Vector data not affected.
EPAM    - PowBits flags in EPAM housekeeping were being set incorrectly.
SWICS   - New code to support new SWICS Browse software from SWICS team.

No increment to version number	1999/05/13
SEPICA  - Browse data rates were being decompressed incorrectly. This
          problem did not affect level 1 data.

2.8 -> 2.9      1998/12/07
MAG     - inhibited output of MAG data structures when scclock is
          not set. Minor, very few data records affected.
SEPICA  - Significant reorganization of all SEPICA data structures,
          per request of SEPICA team. Also, implementation of
	  data collection time-stamps for SEPICA data.
SWICS/SWIMS - Correction to data ACEepoch-collection time in edb data.
S3DPU   - Improved handling of missing data and S3DPU dummy data, should
          result in recovery of some Science Records which were being
	  rejected due to unrecoverable processing errors.
	  QAC value in S3DPU digital housekeeping records (s3_dhk.h) was
	  being set incorrectly. Now it counts number of missing frames
	  in each digital housekeeping record (EDB).
SIS     - added proton browse rates, to emulate SIS proton RTSW rates.
SWEPAM  - new version of SWEPAM Browse code from SWEPAM team.
GENERAL - Take into account the leap second which occurred mid-1997
          when calculating ACEepoch. This will add one second to all
	  ACEepoch values compared with values calculated using versions
          earlier than 2.9.
	  ( #define SC_ACE_epoch_offset 52069705.604 in ancil_subs.c )

2.7 -> 2.8      1998/09/28
GENERAL - Reprocess data due to incorrect ACE_epoch values for 1998-226
          and beyond.

2.6 -> 2.7      1998/09/28
EPAM - added code to correct browse fluxes for missing data in sectors
       4 and 8. added fp6prime channel to browse rates, since W1 rate
       is noisy.
MAG - changed the contents of the MagAvgVec data structure, per
      request from EPAM team. Structure now contains 16 second average
      mag vector in despun s/c inertial coordinates.
MAG - Implemented version 2.3 of mag_browse.for, from Chuck Smith.
S3DPU - dummy data output by the S3DPU was occasionally being mishandled.
        Problem occurred when a minor frame containing dummy data was
	lost during telemetry. The level 1 processing software was
	therefore unaware of the dummy data and subsequently lost synch,
	causing the current S3DPU Science Record to be rejected.
S3DPU - added new HDF data structure to contain dummy data from the S3DPU.
        Each structure contains one minor frame of dummy data.
SEPICA - added code to check FANXMODE during calculation of geometry
         factor for browse calculations.
	 Added Ca rates to Fe browse parameter, since some Fe is falling
	 into the Ca boxes.
GENERAL - improved handling of botched LZP data files.

2.5 -> 2.6      1998/06/18
CRIS/SIS - Multiple changes submitted by Bob Radocinsky.
GENERAL
   - added code to calculate sunpulse times from spinphase clock,
   during periods when the sunpulse time tags are invalid. Added flag in
   sunpulsetime data structure to indicate the source of sunpulsetime data
   (time tags or spinphase clock).
   - Added trap to set the values of the spinphase_latched_at_the_sunpulse
     to 16300 during the period 24530540 <= scclock <= 25143160, when the
     sunpulse time tags were invalid. In the level 1 housekeeping data, these
     variables are SunPulPhaAng0 and SunPulPhaAng8.
   - added new function ACE_position_J2GCI() to ancil_subs.c
   - implemented ACEepoch_to_SCclock() function in ancil_subs.c
     Arrays passed to the following functions in ancil_subs.c are now float64
     instead of float32:
        ACE_attitude_RTN()
	ACE_position_GSE()
	ACE_velocity_GSE()
     
2.4 -> 2.5      1998/05/24
SEPICA - Fixed bug which caused invalid QAC flags. The bug was introduced in
   version 2.4
CRIS/SIS - improved handling of diagnostic events.   

2.3 -> 2.4      1998/05/17
MAG - implemented new calibration offsets received from Chuck Smith 5-7-98.
SWICS - switched to matrix rate 6 for Fe browse rate, per instructions from
   swics team. swics team is evaluating browse parameter output.
S3DPU - now accumulate a full Science Record before outputting s3edb
   data. This means SR's will not be split between two level 1 HDF files.
ULEIS - fixed bug which caused incorrect setting of data collection time.
GENERAL - implemented code which scans for damaged minor frames. If a damaged
   frame is found it is treated as though it were missing. Damaged frames are
   found by scanning for inconsistencies in CRIS, EPAM, SIS and ULEIS science
   data. About 16 damaged frames per day are found, on average.
GENERAL - implemented more efficient algorithm for calculating ACEepoch from
   scclock (SCclock_to_ACEepoch() in ancil_subs.c).
CRIS/SIS - Multiple changes submitted by Bob Radocinsky.

2.2 -> 2.3	1998/04/16
MAG - made sure that 1sec averages in payload coords are filled with
   out-of-bounds values (-999.9) when input level zero data is invalid.
MAG - implemented new version of browse code from Chuck Smith.
   Several variables have been added to the MAG browse data structure,
   in magframe_out_br.h.
S3DPU - Fixed bug which caused QAC variable in edb data to be set incorrectly.
   Also, some edb's with missing minor frames were not being output to HDF files.
S3DPU - set ACEepoch_collection = 0 in edb data, when previous spintime is not
   available. Was being set to an obscure offset value.
SWICS - dpps voltage was not being set correctly in SWICS browse output.
ULEIS - since ULEIS processing treats ADC mode data as if it were missing
   data, set all ULEIS data = 0xff during ADC mode.
GENERAL
   - Implemented trap to handle out-of-sequence frame headers in the level
   zero data gracefully.
   - Implemented trap to handle missing frames between consequtive level
     zero data files gracefully.
   - FOT occasionally uses ADC mode data from real-time DSN pass to fill
     in data gaps. The ADC mode spurts are usually only a few frames
     long. Implemented code to handle spacecraft housekeeping data during
     short ADC mode spurts as gracefully as possible.
hdfgen.pl - now warns if more than one variable declaration is made per line,
   in the input header file
hdfgen.pl - when reporting RCS file headers, leaves off trailing "$" so as not
   to interfere with subsequent check ins of RCS (or CVS). Change suggested by
   Eduardo Santiago <esm@lanl.gov>.

2.1 -> 2.2	1998/03/12 20:27:15
EPAM - Corrected EPAM Browse parameter processing bug. This bug
   was causing significant errors in all EPAM browse params.
EPAM - Switched from DE2 to DE4 channel for high energy electron
   browse parameter. DE2 was being used in error.
MAG - updated calibration offsets received from Chuck Smith 2-20-98   
ULEIS - Removed condition which allowed skipping of ULEIS checksum check,
   when the ULEIS checksum was zero.
CRIS/SIS - Several updates to CRIS/SIS level 1 processing code (see Bob
   Radocinski).
GENERAL - Fixed bugs in calculation of sunpulse times in ADC mode (science
   mode was OK).

2.0 -> 2.1	1998/02/18 02:37:44
CRIS/SIS - Several updates to CRIS/SIS level 1 processing code (see Bob
   Radocinski).
SWEPAM - new browse code from SWEPAM team   

1.9 -> 2.0	1998/02/04 22:55:41
Send flag to CRIS/SIS routines to flush buffers before data gaps.


1.8 -> 1.9	1998/02/01 22:20:08
SEPICA - corrected problems with byte ordering of dspare data
SWEPAM - data collection times now set properly
ULEIS - update code to handle new geometry factor database

1.7 -> 1.8	1998/01/27 00:17:57
ULEIS - set all ULEIS data in dummy frames to 0xff (dummy frames are
   inserted when there are missing minor frames in the raw data).

1.6 -> 1.7	1998/01/08 00:25:33
SWICS/SWIMS - Fixed two bugs in s3edb processing code - first bug caused
   edb's ful of zeros to be written when a dummy-edb was encountered.
   Second bug caused incorrect s3edb.ACEepoch_collection (spin start time)
   to be written in the edb structure.

1.5 -> 1.6	1997/12/17 06:56:58
SEPICA - Fixed bug in sdiag processing code.
SEPICA - added five new data structures to handle dspare data
SEPICA - changes high energy He browse offset from 69 to 50

1.4 -> 1.5	1997/11/19 18:13:11
SEPICA - fixed problem with voltage set bits
SWICS - corrected byte order for dpps voltages
ULEIS - moved checksum checking code to accomodate browse processing.
   browse error flag now set if chk_sum_chk flag set.
GENERAL - added sunpulse time data structure to level 1 dataset

1.3 -> 1.4	1997/11/13 19:58:44
EPAM - Fixed browse fluxes, off by 1000.
SEPICA - fixed problems handling SEPICA pha event sizes corresponding to
   fractions of a pha event.
SEPICA - dspare now limited to 66 bytes to exclude filler bytes.
SEPICA - multiple pha event structures now all have the correct data,
   instead of repeating the first structure.

GENERAL - revamped code to handle spurious ADC mode data. Now instruments
   which do not have data in ADC mode are handled properly.

1.2 -> 1.3	1997/10/26 19:31:05
Hmm, an arbitrary and senseless change of version numbers...?

1.1 -> 1.2	1997/10/26 19:30:04
MAG - Fixed vector unpacking routine. Every other value was incorrect.
SEPICA - uses proper sunpulse times for start of cycle
SEPICA - support new SEPICA diagnostic event processing
SEPICA - fixed bug with DEDX{N}th values
SEPICA - now uses dynamic geometry factor for different fan arrangements
SEPICA - fixed bit shifting errors in HK data
SEPICA - Fixed E-bin ranges for browse
GENERAL - added function to get latest spin before a specified time.

1.0 -> 1.1	1997/10/07 18:19:12
SEPICA - fixed OOP errors with HK items