        Binary Combined Solution Package - Version History

                        Donald H. Gudehus

April, 1986 - Initial version

March, 1994 - Revised program to read standard binary star file,
and handle several possible combined solution cases (15).

January, 1995 - Allowed for astrometrically determined parallax
to be corrected by a predetermined correction factor which
represents the effect of the finite distance of the standard stars.

May, 1995 - Various bug fixes for plotting spectroscopic secondary.

June, 1995 - Added capability to solve for spectroscopic subcomponents.

October, 1998 - Added printout of descriptions of each plot.  In 
printout of residuals, changed from ratio of residual to sigma in file, 
to ratio of residual to mean error of an observation of average weight
of solution.

October, 1999 - Added capability to write the residuals of the visual
binary solution to a standard file for later analysis.

October 13, 1999 - Modified program to work under Unix. 

November 24, 1999 - Fixed bug in concatenated string in call to
MESSAGE.

November 25, 1999 - Fixed bug where residuals of spectroscopic
component files were being displayed when not asked for.  Fixed bug
where incorrect index was being displayed for projected velocity
amplitude of primary or secondary subcomponent secondary.  Increased
number of points to 5000.

December 16, 1999 - Added ability to exclude various ranges of 
phase from spectroscopic data so as to test for line blending.  Also
added calculation of period in days, and distance in parsecs.

February 21, 2000 - Added ability to redo solution, excluding points
which deviate by more than a given factor times the mean error.

February 22, 25, 2000 - Added ability to solve for apsidal motion
(binary.for, binary_header.for, binary_indexes.for, binary_ltt_cor.for,
editbinary.for, get_binary_header.for, nlfun3.for, nlder3.for, 
print_binary_header.for, write_binary_header.for).

July 23, 2000 - Fixed bug where check for SIGMA equal to 9999.99999
was not working in the Unix version but was in the OpenVMS version.

April 27, 2001 - Incorported call to new version of parallaxfactors.for
Made WEIGHT_SCALE for X and Y two-dimensional.  

May 2, 2001 - Meaning of proper motion acceleration is now true
acceleration rather than coefficient of the quadratic factor.

August 23, 2001 - Fixed bug in binary.for where the residual vectors
were not being drawn for the primary when both primary and secondary
visual binary data were being considered.  Fixed bug where the
average of initial estimates of the semimajor axis for a primary
and secondary spectroscopic binary was being calculated when it
shouldn't have been.  Changed calculation of covariance matrix in
nonlinfit1.for to allow for cases where some dimensions have too few
points to give a nonzero meanerror.

September 24, 2001 - Added ability to calculate apsidal motion
for the subcomponents (binary.for, binary_indexes.for, editbinary.for,
nlfun3.for, and nlder3.for).  Added INDX to COMMON block so that values
appropriate to the solution, and therefore PARAMETRS, can be used
when plotting.

October 8, 2001 - Fixed bugs in editbinary.for where ratio of photocentric
to true semimajor axis wasn't getting passed to nlfun3, and where the
parallax factors were not being calculated in certain cases.

October 16, 2001 - Added ability for program to be run from a
"save" file with alterable parameters.

September 21, 2002 - Increased size of array in common block bkey in
save.for, strkey.for, and usrinp.for to allow for variables with
large dimensions.

November 25, 2002 - Added plotting of errorbars and increased
number of points for data and plotting to 10000.

December 22, 2002 - Added calculation of mass function and sum of masses
for the spectroscopic cases.  Fixed bug in nel.for where occassional NaN
(not a number) situations from user entered data would cause an incorrect
count of parameters in usrinp.for.  Fixed the logic in binary_indexes.for
for determining when the parallax could be solved for.  This had caused
an error in the case of a combined solution with data from a visual
secondary with relative coordinates, and a spectroscopic secondary.

January 1, 2003 - Fixed bug in optional output of residuals where the
ratio of rms average of residual to mean error, for the case of a visual
secondary with measurements in units of theta and rho was not being
done correctly.  Also fixed calls to errorbar.for and line_symbl.for in 
xyplot.for which had not yet incorporated X_INTRVLS_OFF and Y_INTRVLS_OFF.

January 3-6, 2003 - Added new header line "Relative orbit, Equator is constant"
and corresponding TYPE='r' to cover nonstandard case.  Improved code for
calculation of mean error in section where residuals are requested to be
viewed and some parameters are optionally held constant in the solution.
Added separate plots of primary and secondary in addition to the combined
plot for visual binaries when both files are available.  Replaced call to
NEL with INEL in Unix version which hadn't yet been done.

January 12, 2003 - Added ability to scale weights in the Theta-Rho domain.

January 14, 2003 - Added a symbol marking the location of the primary in
a relative plot.

July 20, 2003 - Fixed a typo where MASS_FUNC was misspelled as MASS_FUNCT
in the calculation of the mean error of the mass function.  The corrected 
value is smaller by about a part in 500.  The typo was pointed out by
Larry Wasserman.

February 27, 2004 - Introduced a new key value for the period which simplifies
solving for planetary orbits about single stars.  Improved the boundary 
checking for subcomponent elements.  Improved the searching logic in
nonlinfit.for.  Improved the writing of logical values to the save files.

March 30, 2004 - Updated plotting software.

September 4, 2004 - Improved automatic axis scaling in plots when errorbars
are present.

September 10, 2004 - Fixed plotting problem for case where primary with
no secondary data, included parallax information, and the
observed-to-true parallax was substantially less than one.

November 6, 2004 - Added calculation of a(AU) and a(AU)sin(i) under
"Additional Information" for certain combined solution cases.

March 7, 2005 - Added support in editbinry.exe for creating and editing files
containing one-dimensional interferometric data consisting of baseline angle
projected on the sky, and projected binary star separation.  Created the
application one2two.exe, which can fit a cosine curve to files containing
one-dimensional data, and solve for the true position angle and separation.
Created another demo program for the nonlinear least squares subroutine,
nonlinfit.  The new program, nl_demo_3.exe fits a circle through points in
a plane.  In contrast to nl_demo_2.exe, which fits an ellipse to points in
a plane, no angle is associated with the points.

April 5, 2005 - Various improvements and port to Mac OS X

May 16, 2005 - Fixed bug in conversion between Besselian years and Julian
date.  The problem was noted by Keivan Stassun.

May 19, 2005 - Following a suggestion by Keivan Stassun, epochs of possible
eclipses for spectroscopic binaries were added to the output.

October 25, 2005 - Improved eclipse calculation to cover negative a*sin(i).
Corrected formatting problem in Mac OS version.

March 2, 2008 - Fixed two minor bugs:  1) When creating a file of spectroscopic
binary data with command CS in editbinary.exe, the header lines for the
"System radial velocity" and "Sine of inclination times semimajor axis in AU"
were being duplicated 2) When plotting spectroscopic binary data over phase,
if the sigmas for the data were zero, and error bars were asked for, extraneous
error bars were produced.  

March 22, 2008 - An input file that is sent with Apple's mail utility to a
Linux system, will have <CR>s inserted near the end of each line.  This 
caused a problem when the header was read by binary.exe.  Now, all control 
characters are filtered out as the header is read.  The programs that read
ascii files and plotted the results, have been combined into one program, 
xyplot_ascii.exe, and a new feature added.  One can now read several files,
each with a different number of lines and columns of data, and plot the
results. 

April 2, 2009 - Fixed bug in xyplot.for where interactive command "v" was not
working properly.

April 14, 2009 - Fixed bug in sao_vect.for which was introduced in a previous
upgrade.

May 19, 2009 - Fixed bug in apple.for which didn't allow plots to be correctly
oriented when more than 2 plots were written to a plot file.

November 12, 2013 - Added support for Mac OS X on Intel (64-bits)

July 31, 2014 - The version compiled for Mac 64-bit architecture did not handle 
a "save" file correctly, did not initialize correctly, and sometimes did not 
plot correctly.  A workaround involving a special keyword in the save file did 
not work on all versions of Mac OS X.  Compiling for 32-bit architecture 
solved the problems.



