UPGRADE NOTES:
==============

XOP version 1.3 (January 1996) upgrades:
========================================
+New distribution files:
   setxop (file) script to initialize all the xop environment variables
	and paths
   .xop_defaults (optional) file with default values for the
	xop system defaults. (An additional xop user defaults can
	be placed in ~/.xop_defaults)
   xop_uname customized uname for being used when the xop files are shared
	for different architectures
   shadow (dir) this directory is only required when Shadow is not 
	installed in the system where xop is being installed. The files
	here are shared by different Unix platforms.
  Machine dependent directory bin.`xop_uname`
+SHADOW programs:
   - Now, the only non standard shadow programs are braggxop and btraj (this
   last used by xwiggler for creating the asymmetrical wiggler). All the others
   (srcomp, wiggler_spectrum, abrefc, transmit and mlayer) are from the 
   standard shadow distribution shadow2.1.
   - But:  I found that the HP mlayer and wiggler_spectrum do not run
	correctly. The SUN ones run OK. I send you my sources 
	in DEVEL_src directory.
   - All the shadow files required by xop are in the bin.`xop_uname` directory
   (even if they are redundant with with the SHADOW installation in your
   local configuration).
   - Use (back) of abrefc and not abrefcnew. 
   - Therefore the only file to add in the $SHADOW_HOME/data directory is 
   TABLEF0 (needed by braggxop). 
+Binary calls are done in xop without path. 
+XTEXT calls have been elliminated (substitute by widget_message and
  xedit). Added few keywords to xedit to be called from xplot. Xtext 
  has became obsolete and removed from the distribution.
+In xtransmit and xfilter eliminate some pull down menus.
  This job is now done inside Xplot. That required the
  extension of the coltitle keyword of xplot to multiple column plots.
+Remove the xop_defaults('printer'). Not longer needed since xprint
  and printing take the default printer from the new function
  getsysprinter.pro. Getsysprinter reads $PRINTER (or $LPDEST) environment 
  variable and sould be extended/changed for other platforms than SUn & HP.
+The binary braggnew has been renamed to braggxop.
+Xus: 
     -reads the doc file from $XOP_HOME/doc/xus.doc
     -Uses xsurface1 to allow printing 3D data. Xsurface1 allows also
     to display the x and y arrays (the call from xus needs to be done).
     -Reads architecture from !version, and no longer need of $XOP_ARCH
+XOP/Source applications: change "Write files for Xtransmit" message by 
    "Write files for XOP/Optics".
+Several application version numbers have been added.
+New main window text and new tools from the main xop window.
+Bug fixing, etc. Log available from the application doc text.

XOP version 1.4 (1996-10-24)
============================
+Include DABAX.
+Compiled for Solaris.
+Preparation of embedding.

XOP version 1.7 (February 13 1997)
==================================
+Preparing the XOP/embedded
+This version include many new applications that makes obsolete an important
   part of applications. The obsoleted ones have been kept in the 
   optics/obsolete menu for testing and debugging purposed.
+Fully compatible with IDL for Windows95. Windows95 application binaries
   produced by using the Fortral lf90 3.0 Lahey compiler.
+Uses "xhelp" for help. This procedure first search in a directory defined in
   his common block ($XOP_HOME/doc for xop) and then uses the same mechanism 
   as "doc_library". The idea is to allow users to get documentation even 
   when the idl source is not distributed (embedded option). The documentation 
   in this directory can be produced using makedoc.pro (in the same directory) 
   when running xop in development mode.
+Uses DABAX library for optical properties, crystals ans compounds.
+Set of scripts for starting xop. Xop now does not need to pre-define
   anything (paths, environment variables, etc) in the user's .cshrc (or
   similar). 
   Xop can be called from the IDL prompt by typing 'xop' or 'xopd'
   (the last one is the "development" mode)
+All the windows created with the "set parameters" option now have a help
   button, which looks for the text in a file $XOP_HOME/doc/<application>.par
   (most of these files are not yet installed).
+Better presentation. Font selection.
+Debugged version of xplot.
+Binaries for HP-UX 10
+Shadow utilities are obsolete except for wiggler_spectrum and mlayer.
   All Shadow utilities in xop have been recompiled and call their data
   file in the directory $XOP_HOME/data/shadow. There is no longer need to
   define all the SHADOW_* environment variables.
+xurgent(sililar functionality than xus), xinpro (sililar functionality than 
   xcrystal) and xxcom tables (which may be included in DABAX) are now 
   left in the current area but may be moved soon to the obsolete area.
+ There are many applications under development (especially xcrystal and
   xcrystal_bent). The development and debugger have to be done in the 
   fortran code and I hope that wo won't have to touch the idl code.
   This will be done later, after or during the first xop embedding test.
+Many other things that I actually forgot.

XOP version 1.8 (March 27 1997)
==================================
+ Works under IDL5.0B5. Changed from short->long filenames in Windows
for this version (old names kept for idl4.x)
+BUG: The widget position in the parameters window in xpower is
different under idl5.0b5 that in idl4.x. From now it woks well for
idl5.0b5 and no so wel for idl4.x.
+BUG: It seems to be a bug in the idl5.0b5/Windows that causes that
windows with scroll bars in the main window not appear. That affects
XscrMenu in several applications (Xpower, Xcrystal, etc) and in xus.
It has been fix temporally by removing the scroll bar with this version
(if !d.name EQ 'WIN' and !version.release EQ '5.0B5' then...)
+Binaries for Windows completed (us, ws) 
+Lots of small fixes.
+announce window when starting xop.
+prelimirary test under idl5.0b6 (only under HP)
TO BE DONE (very soon):
+Some documentation files (specially set_parameters/help) are still
missing).
+adapt to 24-bit colors.
+linux binaries

XOP version 1.9 
===============
+files missing in xaid directory (pointed out by RSI)
+change doc_library -> xhelp in xabrefc,xbragg,xfilter and xtransmit.
+bug fix in xcrystal.
+changes in util: xwindow,xsurface1,coor2matr
+xop_ifc (generic interface) , util:copy_structure, util:make_str
+change doc_library -> xhelp in xabrefc,xbragg,xfilter and xtransmit.
+97-05-15 add Takagi-Taupin alpha code in xcrystal_bent. Changes are:
    -xcrystal_bent (in xop dir) cbar imgunder scalearray coor2matr (in util 
	dir) cryst_tt (in bin.<> dir).
+renamed the *.xdr to *.sav
+updated spec_access
+introduced a XOP_WD (working directory) environment variable 
+defined an XOP_IFC optional environment variable. That points to the 
 directory where the *.ifc (generic interface) are placed.
+read_ascii renamed to rascii
+spec_access splitted in many files
+shadow/obsolete (xsrcomp. xabrefc, xtransmit and xbragg) placed as an 
  extension. They use shadow_defaults() instead xop_defaults(). 
+xurgent: bug in displaying MODE1 results.
+xcrystal mosaic part fixed, includes unit [rad, arc sec, etc] in results,
   new doc.
+xcrystal_bent: spelling error in curvatute, cte curvature -> Poisson ratio.
  xcrystal_bent: Zac unit to mrad. Many other changes.
+urgent source code fixed (showing a bug in hp)
+xcrosssec under idl5 doesn't work?. Density value is not read (fixed)
+DABAX applications read the defaults from .xop_defaults instead of 
	.dabax_defaults
+dabax files XRayemission and EBindEner now work (updated .HIdl file).
+bug in idl5.0 -> affects to dabax_main. Changed the main window.
+f1f2_calc now ignores a missing scan (i.e. when using Muscovite with 
  Brennan data)
+window position in xprint saved, larger text entry, include a delay in 
 removing the PS file (the system failed to print brcause the file 
 disappeared).
+xwindow: don't use a variable called "i" in buffer: conflict.
  Definition of internal variables.
+pass sdep() to util directory (needed by dabax). 
+Windows / Unix switch using sdep() (all codes checked.
+widget_message is called with dialog_parent kw in most cases.
+applications that create temporary files call XOP_WD in case they are
  not called from the main xop window.
+new xop script in Unix (Bourne shell, uning flags -d(eveloper)
  -e(mbedded) and -u(ser) mode).
+doc in main xop window updated.
+fixed a bug for alpha quartz in DABAX applications.
+XPLOT: 
  +Bug fixed: when zoom selecting and resize window, it goes back to
    resize instead staying in zoom-selection. MSR 97/06/30.
  +help button in many windows instead info page.
  +"Apply button" in /limits/set and larger window in edit/legend-label.
  +Changed zoom rubberband: selection was very slow in unix, and not 
    working well in PC.
  +dynamic resizing of main window back to work.
  +bug fixed (when setting limits and starting a new window, the limits appear 
    in the new window).
  +bug in idl5.0 using frames -> affects to xplot! (some frames removed)
  +many other improvements (see xplot doc).
+ K(GAP) tool updated and placed also in Xwiggler.
+ optional log of users. File defined by user.
+ xop_ini.pro (extensions): commented line allowed (;). Comment displayed 
   (after :).
+added xhelp common block in xop_ini.pro to allow to access the doc
  files in embedded mode when the application is started from the command
  prompt (i.e. xop xcrystal).


XOP 2.0
=======

XOP version 2.0 Beta (embedded February 1999, released: March 2000)
XOP 2.0 released in July 2000

general
=======
+rename bin directory in Windows to bin.x86
+DABAX main window in W95 doesn't work after using other applications (xws).
+problems under windows. After using some applications, the others do not run.
+xop_users removed
+Check colors in all displays. 
+Add Windt's opt constants to the DABAX data lib.
+EPDL97 or any other default?
+ Update man page.
+ Place dabax info from data/README.TXT to README_HOWTO

applications
============
+xpower: allowed '?' as name of the compund
         allowed '?' as file name
         allowed a single value calculation DONE98/08/19
+xus: use of sdep, xop_wd,  etc (waiting for Roger's last version)
+check eq_edit,myidlmacro,poly_smooth compilations.
+create executables under SGI and LINUX.
+xop.pro: remove the xhelp common block. Already defined in xop_ini.pro.
+urgent.f give problems (format) for energies >= 100keV.
+xcrystal hang-ups when loading mosaic example in NICE (not in expgj??)
  (due to the different DABAX files...)
+ help in xlegend, xxouts, fourier filtering
+ check back xnlfit in Unix
+ check back in unix: xcrystal_bent, dabax, xscrmenu.
+ xxcom: put the Energy units [MeV] in the par window.

+ clean the src directory and make compatible sources for Unix and PC
  (done for BENT).
+ create executables under DEC-Alpha
+ Recompile urgent.f under Windows
+ xwiggler: warn the users that max number of available points are 5001
          make an automatic pickup file mechanism
+  on the Xus parameter input window, at the bottom in the "intrinsic
   parameters" section, the button widget text is half hidden by the frame.
+  The complete units in the Xwiggler results dont seem to be specified
   anywhere: the data file states ph/sec/0.1%bw, but is it per horizontal milli
   radian (I guess so?), and integrated vertically?
+ clean doc directory
+ Hourglass when creating the DABAX index file.
+ Set defaults does not work in xcrystal & xinfro in Unix.
+ xcrystal: put a warning message when LAUE AND ALPHA=0!!!
+ xmckale help fails...
+ xcrystal: laue simm But from where could I know it? Maybe in
+ xurgent: >I try to simulate with X-urgent an elical undulatro but the input 
  window do not allow me to introduce the Kx value. Kx is changable only if 
  one use the crossed undulator. To simulate an elical one, the only way 
  is to use the Itype 1 and introduce a Kx value for the horizontal value.
  I think You must let the option to introduce both Kx and Ky even with the 
  Itype 1 - Daniele Cocco.
+ spec files: unix/windows compatibility? : NO
+ myidlmacro: allow run and not quitting
+ xurgent: XURGENT has wrong unit for the current. In URGENT program, the
  unit is in A but the panel in the program shows mA. Hope this will be fixed.
+ xshundul: allow changing number of rays
+ xyaup "printer"
+ xyaup: use CleanFiles in call to xop_spawn
+ XYaup: default does not work in W95. : stefan@SLAC.Stanford.EDu


xplot
=====
+gaussian convolution in xplot.
+cdf by int_tabulated and by total()
+create tmp data for testing
+take the min (not zero) to calculate the fwhm (in getfwhm) DONE???
+Not change the columns when re-loading DONE98/08/20
+put arrows in the scan sel window (or in main pannel??) DONE98/08/19
+working woth spec files: supress fwhm label when changing scan DONE09/08/20
+the connected/disconnected line does not work fine.
+calculate fwhm etc gives error with file
	/users/srio/Working/Mosaics/Process/cristal1_18keV.dat
+edit/data changes the cols to the default. Should conserve them! DONE98/08/19
+in polynomial fit info, write the equation
+Xplot View/Mesh/Kind Shaded_surface also available.
+save the data in SPEC format with column labels.
+the axis labels are automatically set to the "SPEC" defaults (#S, -1, -1) 
   if a SPEC file is read by "File/Load Data file".
+A variable for the scan title w/o scan number (#s)
+Bugs fixed: Xplot crashes, when #S is used as plot title and #F is not defined.
             Xplot hangs up with calculations/width... using nice:l20.dat file
             when fixing the limits in one window, it does the same in ALL
+Calculation with {Columns}": Xplot remembers the formulae in a pulldown menu...
+add metrology calculations: PDS
+backup file only saves last plot (not saved plots).
+xprint: ask for overwriting file
+ xplot: add ML fit
+ place a time limit in the non-linear fit
+ save/restore do not work for saved sets.
+ edit/coltitles presents a tiny window
+ use of hardware fonts
+ XPLOT from a user at the APS. Please consider implementing the usage of
  user defined templates (to be loaded from files, for example under the file 
  menu) which contain axis scaling, titles, etc. to simplify plotting 
  (comment #2 below). Also consider a push button for using the last or 
  current template for quick setting of axis parameters. I don't necessarily 
  agree with comment #1 below because I think the separation of controls as 
  you do it now is just fine (and with the addition of user templates, the
  comment about axis scaling is not as important; besides a user may ask for 
  push buttons for a variety of things and you have to make the call which to 
  implement, if any). 
+ 2) Would be nice to have the program to pick automatic selection of 
  lin-lin, log-lin, log-log axes depending on quantities being plotted. 
  For example, when plotting the total cross section using a lin-lin 
  selection (default), the data is barely seen in the lower left corner 
  (for the EPDL97).
+ 3) Do not force exact limits (I know you work on this).
+ 4) Consider moving the setting of axis limits to "Controls". The limits
  are changed very often, and as it is right now, it's a little tedious to
  change the axis limits. Or perhaps, use the Edit/limits as now, but 
  allow for a pop-window (as for controls) which can be kept aside the 
  xplot window for quick and easy changes. [NON MODAL WIDGET]
+ 1) When plotting the EPDL97 data (with long x- and y-axis titles), the 
  window covers the full screen on my 19" monitor, and clips the button 
  "scan sel ...". It cannot be made smaller. Please check on this and it 
  would be nice to be able to shrink the window to fit the size of the 
  monitor.
+ xplot: multiple peak fitting
+ xplot: add new xplot window with only selected data
+ xnlfit: when saving to a file, the commands are not updated
+ xprint: eps is conserved when printing to a printer
+ xnlfit: add column when a selection is found. Extrapolate using the 
	equation, and not resizing.
+ xnlfit: save as default - Quit button
+ xplot: cut facility
+ xprint: changing lpdest and customized aspect ration forgets lpdest
+ xprint: default printer for linux
+ UP TO HERE AVAILABLE IN VERSION 2.7 shipped with XOP 2.0



TO BE DONE
==========

general
=======
- update Fanning/colorbar
- add Namito's fluorescence data as DABAX file.
- Create the Linux distribution using RPM.
- command line to start single application.

- I think there may be a minor bug in the Unix xop script. Near the
  beginning of the script there's a "while getopts" loop, followed by
  "shift `expr $OPTIND - 1`". Shouldn't this shift statement be moved
  up to be the last thing inside the while loop? (Using ksh on my
  hp-ux box, if xop is invoked with no arguments, the getopts 
  returns false on the first call. I'd have thought OPTIND should
  be set to 1 in this case, but for some reason that's not what
  happens; instead its undefined and the expr crashes.)

- I downloaded xop for Linux, and hit a small snag when trying to
  decrypt the encrypted part. Linux does not use the crypt function, 
  as it is too weak for modern hackers. I therefore had to use an 
  HP system to decrypt it. That was OK  for me since I had access 
  to one, but there must be many potential users who do not. I 
  even tried to find source code from the Web, without success. If
  you have access to the source for this program (maybe from the 
  HP distribution) it would be nice to include it in the archive.

applications
============
- change equation in xurgent/k-tool
- xcrystal: introduce mosaic primary extinction
- xcrystal: display mosaic MFP as a function of angle
- xcrystal_bent: tt net file: change to binary format in PC
- check applications sent by Angelo Taibi
- problems with angle definitions in xcrystal_bent applications.
- cryst_pp remove calculations of minimum radius.
- position of the message windows when error finding H in xcrystal.
- xwiggler: btraj fails to write the 7-col file in NT (M. Green)
- xf0: the file f0_EPDL97 does not work (srio)
-  A "write files for XOP" option might be useful in Xws, although it is no
   big deal to save an ascii file and then read this for mirror/filter
   calculations.
- Randolf (linux) And here's a brief bug-report. Maybe you can reproduce 
   theses problems on your machine (what wasn't always evident ;-) )
   1. After I started INPRO (click on "Inpro"/SetParams/Accept) direct
      after starting XOP and had a look on the reflection curves (Xplot),
      (some of) the other modules (at least XPOWER, XCRYSTAL, XCRYSTAL_Bent) 
      can't be started. On the other hand Mlayer still works. By now, I could
      observe this effect at INPRO only.
   2. When running crystal_ml and crystal_tt, the program gives me the
      following Errormessage
	   SHADOW-E-Error: 
	   Module     : CRYSTAL_FH
	   Message    : Data files does not corrspond to  current version.
      Is this just a silly warning or does it cause calculation errors?

    1. It would be nice, if the Poisson ratio in Crystal_bent would be
       read from a database.
    4. All RC-Programs, but INPRO, ask for the DWF directly. It
       would be nice, if one can give the temperature and the 
       Prg would calculate the DWF automatically, as it is in
       INPRO.

    I've found a "bug" in xF1F2. It's not a real one, but it's an
    annoyance: The list "material mixture table" is too long to be 
    displayed (on my monitor) and there is no possibility to scroll so 
    that I can't see all the entries in the list. :-( Maybe it is 
    possible to add a scrollbar?
- xF1F2 (etc)
    It would be nice if one could select the data to be calculated
    by buttons (you know these square buttons for multiple choice
    as they are used in many programs -- i thing IDL provides such a
    widget too). 
- it should be desirable to model monochromators 
- Using xpower 1.0 there is an error message when running it for water,
  please check on this. The error message is:
  Descriptor (H) not found in the dabax file: 
  /home/oxygen/DEJUS/esrf/xop1.9e1/data/dabax/f1f2_BrennanCowanShort.dat

- I had some bombs on NICE when I tried to use the help button from the
  Set & Run widget of Xus - it didn't find the documentation and when I
  used the open file routine to get it myself that crashed the whole Xop
  session.

- I find that sometimes I have to calculated the size of the beam at diffent
  points along the beamline by hand using just the source sizes and divergences
  and the photon divergence.  Is there a tool to do that?  
  I set up a spread sheet after a while, but that could be an interesting
  tool in Xop as well. Going even further, there could be simple elements
  defined like focusing mirrors using matrices to tranform everything.

- I think XOP is more useful now, especially XPOWER which is more flexible than
  XTransmit.  However, we miss the possibility to define the vertical
  opening angle in BM, so I prefere XSrcomp over BM.
- xurhent save input files (not *.xop)
_ make obsolete Brannan in pc and EPDL 
- Xus: doc/xus.par file missing. Automatic selection of Plor1D or Plot2D.

- Extinction length: xinpro, xcrystal

- Check closing windows with the "x" in Windows.
  > As a general recomendation, you should prefer to use the XOP 
  > buttons instead the Windows ones (i.e., "x") for closing windows.
- En xf1f2  he encontrado que cuando quieres imprimir el plot, no tiene en
  cuenta los posibles zooms que hayas hecho, con lo que se obtiene un
  resultado "desapointing".
  No se si eso es general o no...En cualquier caso la solucin la mas
  simple que he encontrado es copiar la tabla de resultados e imprimir 
  con otro programa (excel, origin...).
  a future version you could put a hint on the template like:
  "Ass. Angle (to surface)"
- xcrystal_bent: ml: when the crystal uses infinite radius? Chack
    transition. Example Si 400 24.35 keV R around 100 m
- xcrystal_bent: use number of points instead Y step

-- xop_ifc: allow CleanFiles kw in xop_spawn call...
- xcrystal_bent: check files to delete: diff_pat[tern].*
- dabax: interpolation routine for f1f2 and cross sections



xplot
=====

- xplot: add label with fit parameters.
- include ccon from dejus
- interactive tip-tool for buttons.
- interference with limits between multiple windows under Windows95
- add fit with error function (see windt?) and atan (Smilgies)
- add remove background from file (Armando)
- apply button in set limits gives errors in shadowvui
- working with spec files: allow displaying all kw/header
- non-linear fit: doesnt changes in columns when changed in the main xplot.
- non-linear fit: problems when fitting keeping fix a parameter
	(file:  /users/srio/rt/rt2.3/Mosaics/DIV-BEAM/tab*)
- using spec files and edit data:
   goes back to numbered (no named) columns
   crashes when removing data
- edit data selection is wrong with reversed abscissas data sets
- try to do fourier filtering with automatic normalization
- background removal with pol fit selecting points with cursor
- normalization procedure
- background removal (polynomial)
- automatic calculation and display of fwhm, peak, etc.
- chech new column with operations with columns with MCA data
- oper w col/add column does not update pulldown menu when using coltitles
- with spec if I close the sel scan... window, when I reopen it I do not
 get the current scan selected. 
- add intersection points (x,0) (0,y) in lineal fit results window.
-  in Xplot, the y-axis label is often outside the plot window and therefore
   not visible
- Quand je calcule l'integrale d'une courbe avce xop je m'apercois que je
  trouve 2 resultats differents selon que mon axe des x est dans l'ordre
  croissant ou decroissant. Le calcul juste necessite que les x aillent
  dans un ordre croissant. 
- Xplot: In Mesh-Mode outputs Zoom rubbish
- In Xplot: Edit/Limits for z-values, too.
- When reading a SPEC-file, XPlot knows the column labels. However,
  when editing the columns (Edit/Data) Xplot forgets the names and
  calls the columns 1-n. It would be nice if Xplot would remember the
  labels.
 The same holds true for Column Operations... When Re-Calculate
    a column (with "Overwrite Existing Column") the label is gone.
- It would be nice, if one could paste columns of different data sets.
- xplot to load structure arrays
- xplot/xscrmenu/help/legend (add NoMenuBar)
- xplot: Quando aggiungi un parametro p[3] al "model equation" devi aggiornare
  non soltanto i "Model Parameters" e il "Free (1) or Fix(0) parameters",
  ma anche i valori che si trovano sotto il bottone "Boundaries...".
  Se metti li un po di zeri per farli dimensionare a 4, tutto funziona.
- Xplot: error bars and save sets.. (Ahsen)
- Xplot: error with 24 bits display...colors...cw_clrindex1.pro
- Bug in xprint: setting eps and then print to printer, the eps flag is
  not reset
- Xplot/findpeaks: inposible to enter a new cutoff. Always takes the default
- xplot: spec: fails to pltmgr: move data to current set
- xprint: browser window should appear centered on main xprint window
- xplot: set limits as selection area does not work
- printing ascii file: Use PrintFile? http://hem.passagen.se/ptlerup/
  IDL>Spawn, 'Start C:\"Program Files"\printfile\prfile32.exe testfile.txt'
- xplot/edit data in Linux: after removing rows the window gets minimum.
- xplot: write file with a number of columns (only 2 or all now available)
- xplot: allow to define the limits for the selection area
- xplot: problems with non-linear fit (additional window appears) 
- xplot: document no_block kw.
