************************************************************************
* *
* Program S Y S T E R P L O T version 0.9 Aug 24, 2000 *
* *
************************************************************************
* *
* J.M.M. Smits and R. de Gelder *
* Department of Inorganic Chemistry *
* University of Nijmegen *
* Toernooiveld 1 *
* 6525 ED Nijmegen *
* The Netherlands *
* smits@sci.kun.nl and rdg@sci.kun.nl *
* *
* This program is the property of the abovementioned authors. *
* However, herewith permission is granted to users to adapt the *
* program to their local platform as far as necessary. *
* Proper credits are due, though. *
* *
* The program uses OpenGL and GLUT with its FORTRAN bindings for *
* which the authors cannot claim ownership in any way. *
* The same holds for the way the program is structured to handle *
* window events, which can be found in the example program sources *
* which are part of the GLUT distribution. *
* *
************************************************************************
Contents
========
Program Description
Function selection options
Display options
Input file used
Subroutine callcode
Compiling and installing SYSTERPLOT
Executing SYSTERPLOT
Current limitations
Program Description
===================
SYSTERPLOT is used to plot various function of Fobs, Fcalc, sig(Fobs)
and a number of other variables on the y-axis vs. variables pertaining
to experimental conditions on the x-axis.
The user is free to choose almost any combination, resulting in a
very large number of possible plots.
The program uses an output window with standard functions, i.e. it can
be moved, minimized, openend again, be (partially) hidden and brought
to the foreground again. However, its size is fixed: when the size is
changed, the area used will stay the same.
The window is divided in five areas:
1. The title bar, with the compound code, which can be used to move the
window.
2. The message area at the bottom, in black, used to show the status of
several settings that the user can change.
3. The plot area, in blue.
4. The function selection options area in grey, below the display area,
offering 14 selections for the y-coordinate and 10 selections for
the x-coordinate. Only a few combinations are excluded, namely any
parameters against itself.
5. The display options area in grey, to the right of the display area,
offering a large number of options that influence the display.
As it is, the program reads 13 different variables from the input file,
written by SYSTER. For a definition of these variables, please refer
to the SYSTER manual.
Function selection options
==========================
In the function selection area 10 buttons, marked as 'vs.' on the bottom
row, offer possible choices for the x-coordinate. These choices seem to
be self-explanatory enough, just read 'chi' for 'kappa' if you use
Eulerian angles.
The remaining 14 buttons offer possible choices for the y-coordinate,
resulting in a total of 135 combinations (5 combinations, line 'drift
vs. drift', are excluded). Most choices seem self-explanatory enough.
BckgRat is the ratio of the background counts in the original scan,
and is defined as the largest divided by the smallest.
The four 'average' buttons to the right (including the two on the
bottom row) are used to diminish the influence of strong fluctiations
caused by extreme function values resulting from (very) weak reflections
with large standard deviations.
Display options
===============
> >> >>> Shift the viewframe to the right. By pressing the left,
the middle or the right part of the button, the viewframe
is shifted by one third, one half or one whole viewframe.
|<-- -->| Shift the viewframe to the extreme left (left part of the
button) or the the extreme right (right part of the button).
< << <<< Shift the viewframe to the left. By pressing the left,
the middle or the right part of the button, the viewframe
is shifted by one third, one half or one whole viewframe.
<< step >> Increase the step size (number of pixels per step) in the
x-direction. Default is 2 pixels per step. By pressing the
left part of the button the step size is decreased, by
pressing the right half of the button the size size is
increased. The change in step size is a function of the
current step size: small steps for small sizes and vica
versa.
If the step size is decreased to 0, the plot is compressed
so that the whole plot fits into one viewframe.
sc frame This is an on/off switch: if off (the default), one
scale factor is used to fit the extreme function values
within the vertical dimension of the viewframe. If on,
each viewframe is scaled separately.
<< +clip >> Change the maximum clip value. Default value is 100.
By pressing the left part of the button the clip value is
decreased, by pressing the right half of the button the
clip value is increased. The change in clip value is a
function of the current clip value: small steps for small
values and vica versa.
<< -clip >> Change the minimum clip value. Default value is -100.
By pressing the left part of the button the clip value is
decreased, by pressing the right half of the button the
clip value is increased. The change in clip value is a
function of the current clip value: small steps for small
values and vica versa.
reverse x This is a switch button. Normally x-values increase from
left to right. When switched on, x-values decrease from
left to right.
sqrt(y) This is a switch button. When switched on, square root
values are used on the y-axis.
smooth This is a switch button. When switched on, a smoothed
curve is added to the plot. Smoothing is done using a
5-point function.
<< slim >> Change the sigma limit for data to be included in the plot.
The default value is 2.0, meaning that reflections for
which Fobs / sig(Fobs) < 2.0 are excluded.
By pressing the left part of the button the sigma limit is
decreasedby 1.0, by pressing the right half of the button
the sigma limit is increased by 1.0.
<< >> Change the number of intervals used in calculating averaged
values of Fo and/or sig(Fobs). The default value is 20.
By pressing the left part of the button the number of
intervals is decreased by 2, by pressing the right half of
the button the number of intervals is increased by 2.
reset view Reset all user changeable parameters to their default
values.
EXIT Exit the program.
Subroutine callcode
===================
Subroutine callcode gets the first argument given in the program
calling sequence; if no argument is given it is asked for.
It is assumed that this argument is the compound code, which is
subsequently used to construct several file names.
This subroutine uses two special statements which are / may be
platform dependent:
iargc() integer function, returns the number of arguments
given in the calling sequence, excluding the program
name itself; returns 0 if no arguments are given.
getarg(i,s) this subroutine gets the i-th argument from the
calling sequence, excluding the program name, and
stores the argument value in character string s.
If you cannot adapt these calls to your local platform, it is quite
easy to remove these calls from the program. In that case any
calling sequence parameters will be ignored and the compound code
will always be asked for.
Input file used
===============
There is only 1 input file, the *.syster file produced by SYSTER.
There is no output file.
Compiling and installing SYSTERPLOT
===================================
The 'makesyster' file as supplied with the source code has nothing
to do with a Unix-like make procedure. It just contains the necessary
Silicon Graphics IRIX compile statement, and can be executed after the
necessary mode has been set, e.g. 'chmod 7** makesyster'. It only shows
how it is done on our platform. Special attention should be paid to
the libraries needed and the order in which they are declared.
To install SYSTERPLOT, just copy the executable to a suitable place
pointed to in your path, and probably do a rehash.
Executing SYSTERPLOT
====================
SYSTERPLOT should be executed from the directory containing the
*.syster file.
To run the program just enter 'syster compound-code' (mind the lower
case). If you leave out the compound code, it will be asked for.
The program reflects our measuring device: we use a Nonius CAD4
diffractometer. The setting angles are defined in the so-called
kappa-geometry. If you use an Eulerian diffractometer, just read 'chi'
for 'kappa'.
Current limitations
===================
There are a few limitations to the program. The number of reflections
is limited to the size of various arrays, i.e. 20,000. To prevent
problems with defining dynamic memory allocations on various platforms,
predefined arrays are used. By changing the size of the arrays in
'systerplot.inc' and block data, this number can be changed. This, of
course, should be done in concord with SYSTER, which uses the same array
sizes.
At present 13 different variables are recognized from the input file,
although the number to be read is specified in the first record. The
program SYSTERPLOT has a limit of 15 different variables. But also this
limit can be adapted.
The plots using averaged values for Fobs or sig(Fobs) are not
available, as yet.
There is no horizontal marking of the x-axis as yet.
There is no real relation between the value of the x-coordinate and the
position on the x-axis. The data are sorted according to the values of
the x-coordinates, and the data points are then plotted using equally
spaced steps on the x-axis.