                             This is file DIRAX.HLP


                oooooo     oo    oooooo         oo        oo   oo
                oo   oo    oo    oo   oo       oooo        oo oo
                oo   oo    oo    oooooo       oo  oo        ooo
                oo   oo    oo    oo  oo      oooooooo      oo oo
                oooooo     oo    oo   oo    oo      oo    oo   oo


                       C O N D I T I O N S  F O R  U S E
                      ===================================

     You may use DirAx only at the following three conditions:
     1. You may not copy DirAx neither the auxiliary files except for use by
     yourself or for use in your laboratory, institute, office and the like.
     2. If you wish to hand over this DirAx version in any form to someone else
     you have to notify the author first and to supply the name and address of
     the intended receiver, but is preferred to let hir ask directly a free
     copy from the author.
     3. You use DirAx at your own responsibility.
     4. Reference: DirAx is described in: "Indexing in Single-Crystal
     Diffractometry with an Obstinate List of Reflections", by Albert J.M.
     Duisenberg, J.Appl.Cryst. (1992). 25, 92-96.

     NOTE: As a consequence of improvements and modifications in the program
     and of machine dissimilarities you may get slightly different results than
     published here or in the DirAx paper.


                         Installing and Operating DIRAX
                        ================================


                                  Installation
                                 --------------

     DirAx runs on a(ny?) personal computer under MS-DOS(*) from a hard or
     floppy write-unprotected disk, after proper installation. You are supposed
     to possess an elementary knowledge of DOS.
     Example commands are given between { }. (The original files are supposed
     to reside on disk A: )

--1. Make a directory. {MD C:\DRX}

--2. Change to that directory. {CD C:\DRX}

--3. Select one of the following possibilities. (If your type of processor is
     not listed find the best alternative.)

-3a. 80x86 with 80x87 co-processor or Pentium(R): copy DIRAX_87.EXE as
     DIRAX.EXE to that directory. {COPY A:DIRAX_87.EXE C:DIRAX.EXE}

-3b. 80x86 processor: copy DIRAX_86.EXE as DIRAX.EXE to that directory.
     {COPY A:DIRAX_86.EXE C:DIRAX.EXE}

--4. I M P O R T A N T  for updates only: Delete file DIRAXDEF.DAT if it
     exists. (Trying to delete a non-existent file gives an error message, but
     is harmless.) A fatal error may occur later if you do not delete the old
     file now. {DEL DIRAXDEF.DAT}

--5. Copy the example input files *.DRX to the same directory as DIRAX.EXE
     {COPY A:*.DRX} or to some other directory of your choice.

--6. Copy the files with the solutions for the Examples {COPY A:EX*.DX*}

--7. Copy the explanatory file DIRAX.HLP. {COPY A:DIRAX.HLP}

--8. Type: DIRAX CHANGE DEFAULTS
     A menu appears with the "Original Standard Defaults" filled in. Note
     especially the directories from which the input (*.DRX files) will be read
     or to which the output will be written. Maybe you prefer or must use other
     directories. When installing DirAx for the first time leave all parameters
     as they are, except for the directories if needed. (More explanation on
     the parameters is given in a later section.)
     * Change any desired item as follows:
       a. Move the highlight with the Up/Down arrows
       b. Press 'Enter' (or 'Return') to select the indicated item
       c. Type your value or text for that item, terminated by 'Enter'
       d. Repeat from a. for another change (or correction),
     * then choose from:
       press S to Save defaults as shown on screen and quit,
       press U to Undo all changes: previous defaults are restored,
       press O to restore Original Standard Defaults.

     Input is checked for validity as much as possible and therefore warnings
     and questions may appear.
     If you want to change some default(s) LATER for an installed DirAx you do
     NOT delete DIRAXDEF.DAT of course, but start right away with point 8
     above.

     The file DIRAXDEF.DAT is written to the same directory as where DIRAX.EXE
     resides. From now on at each DIRAX CHANGE DEFAULTS or DIRAX call YOUR
     values are read from DIRAXDEF.DAT.


                                Operating DirAx
                               -----------------
        (For a short description see: Flow Chart DirAx Operation, below)

--1. Type DIRAX

--2. A "Leuchtspiel" appears with version date, author's name and address.
     (Look at it from a distance or with half-closed eyes.)

--3. Press a key to remove it.

--4. An input selection menu appears with all *.DRX input file names found in
     the input directory (specified earlier with DIRAX CHANGE DEFAULTS). The
     files EX00.DRX, EX01.DRX, etc. are for exercise.

--5. Select a file with the Arrows, Page_up, Page_down, Home, End, or by typing
     (repeatedly) the first letter of the filename. (You may enter the filename
     without extension .DRX right away after the command DIRAX, for example:
     DIRAX EX00, and skip steps 2-5)
     Demonstration run: If DirAx is new for you choose EX00 and press 'Enter'
     if some action or input is required. Do not interrupt the process, only
     apply D and the arrows if you like (see 9 and 10 below). You arrive
     automatically at point 12.

--6. Press a key at "press a key" or "more... "
     NOTE: Pressing Q at any "press a key" or "more... " prompt always ends the
     program smoothly. This is much friendlier than killing the program with
     CTRL/C or CTRL/Break during execution.

--7. "change parameters?": With the 'Enter' (or 'Return') key you accept the
     default shown in [square brackets], as installed by DIRAX CHANGE DEFAULTS.
     You may overrule defaults (e.g. with much longer axes) for the current
     session by answering Y to "change parameters?"

--8. The proceedings of the t-vector generating process are displayed
     graphically.
     NOTE: On fast machines, like the 486's, some output flashes over the
     screen too quickly to be readable. This, however, involves only
     unimportant output indicating that the program is running. For reading
     essential output you take your time before reacting to "press a key... "
     or "more... ".

--9. Plotting starts not before 100/2600 part of the triplets has been
     processed, in the meantime the message "wait... " is shown.
     You  m a y  operate the arrow keys and change the plot level by
     -1,+1,-3,+3 to alter the number of displayed t-vectors. (This only affects
     the display and NOT the essential calculations.) A plot level of 15 means:
     only t-vectors supported by 15 or more reflections are shown. The number
     of plotted t-vectors (NOT the total number of t-vectors found) is given
     after "t-vec:". Because you look at a projection along the shortest
     t-vector and because (almost) parallel triplets will give (almost) equal
     t-vectors you may count much less dots than t-vec prints. "nfits" gives
     the number of reflections fitting the last shown t-vector, so
     nfits >= plotlevel. The picture is (re)scaled automatically, which may
     cause a jumpy screen in the beginning and after an interruption. The
     distance between the magenta dots is 10 Angstrom, the perpendicular
     projection distance (the shortest displayed t-vector) is given in the
     upper-right corner.
     Change the plotlevel until something lattice-like is seen. (This will not
     happen always...)

-10. With D (from Distances) a "level picture" is obtained, maybe only after
     some time, see below(+); a view of the data will be displayed with a
     triplet in horizontal position and the normal to the triplet plane
     vertically, something like an oscillation photograph: the DirAx principle.
     The supporting (=fitting on levels) reflections are solid green, the ones
     that do not fit are open red. The somewhat bigger, light cyan dots are the
     triplet reflections and the cross sign is the origin (0,0,0). The yellow
     lines on the left represent the problem: find the best interval; the
     magenta lines on the right show the solution by DirAx. (You may guess
     first.) Horizontal light gray lines are drawn for "occupied" levels only.
     If a level fits well the yellow line disappears under the gray level line
     from the solution.

     (+)After having pressed D you may have to wait for a level picture until
     the next t-vector is found, while the message "D activated - wait... " is
     shown.

-11. You may, but certainly need not, interrupt to see a cell by pressing C
     (from Cell, see 12.) at any desired moment (but C does not respond if the
     number of t-vectors is too small). Continue the process to the end for the
     final cell, if necessary. (The C option may be useful for very slow
     machines, normally you wait until you reach -12. automatically.)
     NOTE: From a flaw not found yet you may get nonsensical screens and even
     wrong results if you apply the C-key (for a preliminary cell) very often
     during the t-vector generating process.

-12. After completion of the t-vector generating process ('to do' --> 0), or
     after your interruption with the C-key, a (scroll) list of solutions
     appears. Fitting reflections are indicated by green vertical lines |,
     non-fitting reflections by their list number mod 10, in red. In the lower
     part of the display the corresponding ACL's and cell parameters for all
     solutions are given, with the arrow-marked solution highlighted. This
     solution is the one with the greatest number of fitting reflections, or it
     is the previously examined solution.

     ==========================================================================
     NOTE: although the solution with most H's is geometrically correct it is
     certainly not always the desired solution, especially not with
     incommensurable lattices and with twins with many co-incident lattice
     points.
     ==========================================================================

-13. You choose between:
     -a)  Select a solution by positioning the arrow and 'Enter'.
     -b)  Change IndexFitFactor. Type I (from IndexFit) and enter a new
     value. A new list of solutions appears. If this IndexFitFactor gives no
     solutions the former status a) is restored.
     -c) Continue the calculations. Type C (from Continue).
     -d) Examine ResStatistics. Type R (from ResStatistics): a graphical
     representation of the ACL table is displayed (not very interesting for the
     general user).
     After b) or d) you are at 13. again.

-14. Results are presented alpha-numerically as a table, with optional output
     to a file, and graphically as three projections of the original data,
     along a*, b* and c* as found by DirAx. Green dots fit, red do not and the
     cross sign is the origin. (In very rare cases it occurs that the
     individual h,k and l are within the fitting limits while the reflection
     does not fit; this happens if the diagonal of the [hkl(obs),hkl(calc)]
     parallelopipedum (the error) is out of limits, but the vertices are not.)
     The projections are on different scales (to expand each picture as much as
     possible) and with the lattice lines more or less diagonally on the screen
     (to avoid pixel jumps in nearly horizontal or vertical lines).

-15. If there are not-fitting reflections ('n' reflections) a new run with only
     the fitting reflections  m a y  improve the results. With more than 4 'n'
     reflections you may try to find a second lattice: "another cycle with n
     reflections only?". See Flow Chart letter S.


                      The Parameters IndexFit and LevelFit
                     --------------------------------------

     Set the initial IndexFitFactor not too low, either to the default value
     (from your Default Data) or to your well-meditated value for the current
     problem; it can easily be changed later in the process. (A too low initial
     IFF results in a program abort if no solutions are found.)

     LevelFit (default, or your choice) applies to a complete DirAx run. It is
     used as an ABSOLUTE criterion (not relative as in the paper). IndexFit is
     applied automatically as:

                      IndexFit = IndexFitFactor * LevelFit

     The program asks for IFF, the IndexFitFactor. Adequate values for LevelFit
     and IndexFitFactor are 1/1000 and 2, respectively. If LevelFit corresponds
     to realistic errors (see below) the initial IndexFitFactor should not
     differ too much from 2, (in general - experiment yourself!). With very
     long axes you may use a smaller LevelFit (1/3000) to ensure that 'fitting'
     on very closely spaced levels really means fitting, see EX11 under
     Exercises with the Examples, below.

     For LevelFit the errors in the setting angles should be taken into
     account, but they do not govern LevelFit completely: see EX11.
     If delta_theta, delta_omega (= delta_phi*cos(chiB)) and delta_chiB are
     these errors (in radians) then the absolute errors DT, DO and DC in
     reciprocal space, in reciprocal Angstroms, are:

                         DT = (2/lambda) * delta_theta,
                  DO = (2/lambda) * sin(theta) * delta_omega,
                   DC = (2/lambda) * sin(theta) * delta_chiB,

     The corresponding vectors, DT>, DO> and DC>, form a "monoclinic cell" with
     unique angle (90+theta) between DT> and DO>. Their maximal combined effect
     D is given by:

            D = sqrt(DT^2 + DO^2 + DC^2 + 2 * DO * DT * sin(theta)),

     from D> = DT> - DO> + DC>.
     In general it is not necessary to go through these calculations: just
     start by applying the default value of 1/1000 and if this does not work
     try 1/500, or 1/2000; all this is not very critical. Too large an absolute
     LevelFit is worse than a too small one, i.e.: 1/1000 is better than 1/500,
     in the majority of cases.
     Example: for Mo-radiation (lambda = 0.71), theta = 15 degrees and errors
     of 0.01 degree in theta and omega, and 0.03 in chiB we have (if we are not
     mistaken): DT = 1/2034, DO = 1/7859 and DC = 1/2620 and therefore D =
     1/1514 reciprocal Angstrom, so 1/1000 is a good choice here. (We write
     1/1514 rather than 0.000660501 because it is easier to type and to
     visualize, and to emphasise the reciprocal nature of the magnitudes.)
     The reciprocal value of the distance between the observed and calculated
     reflection position is given in the output in column 1/error. It gives an
     impression of the errors in your experiment.


                                 Obstinate Data
                                ----------------

     With poor setting angles use a less strict LevelFit (1/500). You may start
     with a higher IndexFitFactor as well and decrease it later (see EX01
     under: Exercises with the Examples). On the other hand, with multiple
     lattices more strict criteria for LevelFit and IndexFitFactor may be
     required to discriminate reflections that lie almost on 'DirAx levels' or
     near main lattice points. A good procedure here is to start with LevelFit
     1/3000 (if your setting angles permit this! - with a CAD4 use the SET4
     centering procedure), and then to lower the IndexFitFactor gradually until
     a satisfactory solution appears. Whether a solution is
     crystallographically satisfactory or not can NOT be decided by DirAx: it
     gives only geometrically possible solutions.
     The example parameters are in no way sacrosanct: try others to get
     experienced with the method. Do not forget to adapt the maximal d (80 A by
     our default) if longer axes are expected.
     NOTE: Dmax should be about 2-3 times as large as the maximum expected axis
     length, but this is not very critical in general. With difficult data an
     overly large Dmax may result in not finding the correct cell.


                  DirAx Input - Bisecting Angles or C-Vectors
                  --------------------------------------------

     NOTE: if you prefer C-vector input (see below) you may define your own
     Cartesian XYZ-system to express the C-vectors in, the DirAx results will
     be expressed in  -t-h-a-t-  system. The axes- and orientation matrix is
     applicable to a CAD4 if you did choose the CAD4 XYZ-system (on purpose or
     by accident).
     If you would like to obtain a routine to calculate C-vectors for a special
     apparatus (e.g. from an image-plate) please contact us, we will almost
     certainly fulfil your wishes.

     The bisecting angles theta,phiB,chiB, OR the components Cx,Cy,Cz of the
     C-vector (reflection vector, S(hkl)) can be supplied for input. The
     C-vector option is incorporated for generality: C-vectors can be
     calculated from any 'monochromatic' single-crystal diffraction experiment.
     For a CAD4 (and for DirAx) the relations between the C-vector and the
     bisecting angles are given by:

                2 * sin(theta)/lambda = sqrt(Cx^2 + Cy^2 + Cz^2)
                       sin(phiB) = -Cx/sqrt(Cx^2 + Cy^2)
                       cos(phiB) = +Cy/sqrt(Cx^2 + Cy^2)
                      sin(chiB) = Cz/sqrt(Cx^2+Cy^2+Cz^2),

     with Cartesian laboratory XYZ co-ordinates defined as: X to X-ray source,
     Z to Zenith and Y completing the right-handed sYstem. It follows that +Y =
     (phiB=0), +X = (phiB=-90), +Z = (chiB=90). (At chiB = 90 phiB is
     undetermined, any value may be put in.) Theta is positive at the +Y side
     of the ZX-plane. Finally: -180 < PhiB <= 180, -90 < chiB <= 90.

     The reverse relations are:

                        Cx = -S * cos(chiB) * sin(phiB)
                        Cy = +S * cos(chiB) * cos(phiB)
                            and Cz = S * sin(chiB),
                       with S = C = 2 * sin(theta)/lambda

     As stated above you may define your own Cartesian XYZ-system for the
     C-vectors, the results are given in that system.

     The program recognizes C-vectors input from the fact that for an observed
     reflection theta < 90 and thus:

                    C = sqrt(Cx^2 + Cy^2 + Cz^2) < 2/lambda,

     so confusion with bisecting angles is hardly possible. The complete list
     must represent either bisecting angles or C-vector components, mixed mode
     is not allowed. If C-vector input is detected an attention message is
     shown. (If a complete list of small bisecting angles could be confused
     with a list of C-vector components you have to convert the angles to
     C-vectors.)
     The calculated or supplied bisecting angles from the data are compared
     with those for the lattice found.

     Input example (bisecting angles):

     0.7093 ! Mo radiation - see Comment Option

    10.42      26.50      11.06      984.0
    10.42      29.89      10.38      833.0
    .....      .....      .....      .....
    .....      .....      .....      .....
     9.96     -23.61      10.13     2991.5

     After the first number (the wavelength, between 0.1 and 5.0 Angstrom) at
     least 4 (but with a CAD4 usually 25) valid "reflection lines" must be
     given, consisting of the three Bisecting angles (in degrees) OR the three
     components of the C-vector (reciprocal Angstrom), optionally followed by
     more numbers:

     theta  phiB  chiB  [....]

     OR:

     Cx    Cy    Cz  [....]

     NOTE the sequence phiB chiB !!!
     NOTE: the complete list as bisecting angles OR as C-vectors, no mixed
     mode.
     (From a CAD4 theta,phiB and chiB for reflection nr x (x = 1..25) are
     obtained by the commands 'LG x' and '.B').


                        Rules for Input - Comment Option
                       ----------------------------------

     - All DirAx input files must have the extension .DRX and reside in a (sub)
     directory made known to the program via DIRAX CHANGE DEFAULTS
     - A number must start with a sign or a digit and must be terminated by a
     delimiter: space, comma, tab or by the end of the line. Within a number
     only digits may occur and at most one decimal point (not comma) followed
     by a sensible number of decimals.
     - The reflection lines are read as: theta, phiB, chiB (or as Cx, Cy, Cz,
     as discussed above). If a fourth number is included it is printed as the
     "intensity", but it may actually stand for anything: it is just for the
     record and not used as such. If it is omitted the program prints 0. More
     numbers on the same reflection line are ignored completely.
     - COMMENT OPTION: A line starting with an exclamation mark ('!') is a
     comment line. It is displayed on the screen and ignored. An embedded !
     divides a line into a data part (before the first !) and a comment part
     (the rest of the line). The complete line is displayed and the data part
     is read as data.
     This option is very suitable for comment, of course, but also for
     "switching off" reflections without need to delete them from the .DRX
     file.
     - Up to 50 reflections are read, the rest is ignored.
     - Empty lines, and lines totally consisting of spaces are ignored.
     - Unintelligible lines or lines with Abs(theta) > 90, Abs(phiB) > 180 or
     Abs(chiB) > 90 are echoed preceded by a ? or > sign respectively, with the
     offending numbers highlighted. The line is rejected.


                           Flow Chart DirAx Operation
                          ----------------------------

     A.       Command DIRAX.

     B.       "Leuchtspiel" (can be suppressed - detect how).

     C.       Press ENTER -> Select from menu with all *DRX files.

     D.       List of bisecting setting angles, intensities and C-vectors.

     E.       Pictures of observed reflection vectors projected along the
              Z-axis and along the X-axis.

     F.       Change parameters? Y/[N]
              Y: input from keyboard.

     G.       Setting up [i,j,k], randomizing, setting up triplets (with
              irrelevant output). NOTE: only reflections with code 'H' are used
              (see S.).

     H.       option (set in F.): WULFF projection of all generated triplet
              normals.

     J.       The crux of the matter: t-vector calculation. Progress on graphic
              screen ("to do" -> 0).
              During this process you may (but need not):
              * Press D -> display a "level picture",
              * Operate the Up/Down/Left/Right arrows -> alter the "plotlevel".
              * Press C -> interrupt process (solution?) and goto K.
              * Do nothing and wait until "to do" = 0.

     K.       Sorting, compressing, reducing t-vectors (with irrelevant
              output).

     L.       The solution or a list of unique solutions with decreasing ACL.
              ("unique" means: cell volume more than 0.5% different from
              others, or different 'H' status.)
              Choose from:
              * type I -> change IndexFitFactor -> new list -> goto L.
              * type R -> display ResStatistics -> goto L.
              * type C -> Continue: resume calculations (J.) or goto S.
              * Select a solution by positioning the arrow and Enter.

     M.       Indices and deviations for selected solution: "proposed cell".

     N.       O.K. for final cell? [Y]/N
              N: another ACL? [Y]/N
                 Y: goto L. (solution list to select from, etc.)
                 N: if J. was interrupted resume J. (t-vector calculations)

     O.       Indices and deviations for final cell. A self-evident warning
              appears with "strange" solutions as: only one H+K odd, or: all
              abs(K) = (0 or 1). NOTE: here the index status of ALL reflections
              is set conform the selected solution and IndexFitFactor.

     P.       Projections of input data along a*, b* and c*. First all
              reflections appear in one colour (green) to let you guess, then
              not-fitting ('n' reflections) in red, fitting ('H') in green,
              with list number as in the input (D.)

     Q.       Output to file? Y/[N]  Y: write to file.

     R.       Another ACL? [Y]/N  Y: go back to L.

     S.       If there are 'n' reflections:
              Another cycle with 'H' (and 'n') reflections? [Y]/N
              Y: Optional: change some H or n codes; goto F.
              N: Another cycle with 'n' reflections only? [Y]/N
                 Y: all H<==>n code is interchanged - goto F.

     T.       END.


                          Exercises with the Examples
                         -----------------------------

     *Use the files EX00.DRX, EX01.DRX, etc. for exercising with DirAx.
     Start with uninterrupted runs, only apply the arrows to change the
     plotlevel and the D key to show the DirAx principle. You may interfere
     with the C[ell] key for a quicker result (not needed on a 80486 machine).
     The output from your version of DirAx on your computer may differ slightly
     from that given below. The notions "twin" and "fragmented" are applied
     rather imprecisely here: more than one lattice.

     EX00 - This is a straightforward model run for a single lattice. (In fact
     too easy for DirAx.) Apply the LevelFit arrows and the D key during the
     t-vector generating process to see what happens. For results see file
     EX00.DX1

     EX01 - Data from a fragmented crystal. First run with default parameters
     and accept proposed solution. Inspect the hkl list and note that more
     reflections could be made to fit with a greater IndexFitFactor: try this
     (as described in the "Flow Chart" under letter L: "type I").
     For results see file EX01.DX1

     EX02 - Area detector data for a small protein, note narrow phiB region.
     Answer Y to the question: "change parameters?" and set Dmax to 160, for
     the rest default (but you might try Wulff), plotlevel 21. The crystal is
     known to be tetragonal, so there IS something wrong with the
     data(conversion)!
     For results see file EX02.DX1

     EX03 - Data from an incommensurate crystal from dr. J.L. de Boer,
     Groningen. As usual very accurate data (from SET4 procedure on the CAD4).
     We know that problems might be ahead so we set LevelFit to 1/3000 (more
     severe criterion) to discriminate interfering reflections. (The default
     value of 1/1000 appears to work well too, by the way.)
     Note that super solutions are found with (almost) all reflections fitting.
     But JdB told us (aha!) that the correct volume is about 100 A^3, so we
     select ACL 15. (This is a strong point in DirAx: 'inferior', but possibly
     correct solutions are listed too.) In the hkl list and the pictures you
     see that most non-fitting reflections are at discrete distances from main
     lattice points. (Maybe the other non-fitting reflections originate from
     another fragment.)
     For results see file EX03.DX1

     EX04 - One axis much longer than the others (more than 80 A), a classical
     indexing problem. Set Dmax to 120 (200 will work too, not critical if
     large enough), plotlevel 22. Nr 8 does not fit.
     For results see file EX04.DX1

     EX05 - Data from a twinned crystal. Default parameters. A super solution
     is found for all reflections, which is common with some types of twins.
     Note: It is not possible to give general rules for this sort of problems.
     The super cell COULD be correct (and IS geometrically!), but you have to
     consider crystallographical aspects. Here we select V = 833.7 because this
     looks promising. Write results to file (default Xcode.DX1).
     Continue with 'n' (not fitting) reflections only ("Flow Chart" letter S.)
     and LevelFit 1/500 (normally you would try 1/1000 first). Now the other
     lattice is found. Write to file too (default Xcode.DX2) and compare with
     .DX1 later.
     Usually with so few 'n' reflections a sub-lattice is found rather then a
     congruent lattice. Then you have to find more 'n' reflections on the
     diffractometer.
     For results see files EX05.DX1 and EX05.DX2.
     For establishing the (twin) relationship from the Xcode.DX1 and Xcode.DX2
     files use the separate program 2VIEW.EXE, also on this diskette. This
     handles sub-lattices too. See 2VIEW.HLP file.

     EX06 - Inaccurate data. Start with default values and note that all
     solutions comply only with a few fitting reflections. Raise IndexFitFactor
     to 9 (for example). Now the best solution fits more or less 24
     reflections.
     For results see file EX06.DX1

     EX07 - Not very accurate data and rather a big(?) cell. Run with Dmax =
     120 and  LevelFit 1/1000. This gives a solution with not-fitting
     reflections which might be halves. See full output in file EX07.DX1.
     Try a complete new run with LevelFit 1/300; now an all-fitting solution is
     found: EX07.DX2. Here again: which solution is to be preferred
     crystallographically cannot be decided from this data alone.

     EX08 - Twinned crystal and ill-distributed data. The first default run
     gives a cell volume of 933.06. A second run with the 'n' reflections only
     ("Flow Chart" S.) gives a volume of 2806.83. Finally, a last run with the
     reflections that have become 'n' now gives a volume of 2799.80, so the
     problem is solved. This shows that you may have to handle DirAx cunningly.
     Output in files EX08.DX1, 2 and 3, respectively.

     EX09 - Twinned crystal, giving a main lattice and a sub lattice.
     Default run, plotlevel 15. Select the default solution ACL=18 (volume
     2863). Output to file (but do not overwrite the original files).
     Now under Flow Chart S.: another cycle with 'n' reflections?: Y. Set
     plotlevel to 12. Select default solution ACL=12 (volume 5727). Output to
     file.
     Your files or the output files EX09.DX1 and EX09.DX2 as supplied can be
     "viewed" with the program 2VIEW (see 2VIEW.HLP file).

     EX10 - Area detector data from a protein. Set Dmax = 300, LevelFit =
     1/2000. Set plotlevel to 23 or 24 later, during t-vector generating
     process. (The default Levelfit of 1/1000 will work too, but then the
     lattice is less discernible on the screen.) Apply the D key from time to
     time.
     Result: all reflections fit, cell volume 1,561,000 approximately. (Cell
     can be transformed to cubic F.)

     EX11 - This used to be a really difficult problem for the DirAx player
     with earlier versions of the program, but now it runs with default
     parameters. One lattice is found with 11 fitting reflections and another
     (from the 'n' reflections) with 10 fitting. Reflections 3,13,15 and 20 do
     not fit at all (but see EX11.DX3).
     Results in EX11.DX1 and EX11.DX2.

     EX12 - Twin, included because it's a beauty. Default run. Two lattices are
     found in one run: the 'main' lattice, V=1973.3, fits 17 reflections (nr. 3
     will fit with IndexFitFactor 3.00), the next best fitting lattice is the
     twin sister, V = 1974.1, 7 fitting reflections. This is exceptional:
     usually an extra run with 'n' reflections is needed to find the twin
     lattice, as in EX09. Note that in both lattices h and k are (almost)
     integer for all reflections. Results in EX12.DX1 and EX12.DX2.


                                Memory Problems
                               -----------------

     These may occur simply because you have insufficient computer memory (we
     did not encounter computers with less than 640 kB to test whether less
     would do) or, more probably, because large portions of memory are occupied
     by memory-resident programs as: Windows(*), MoDem Communication Programs,
     Virtual Disk, Tools, etc. If you meet such a problem try again with a
     "stripped" CONFIG.SYS (by placing REM in front of the appropriate lines).


                                  Final Notes
                                 -------------

     DIRAX and its supporting units MATHUTIL (useful functions), MATRICES, WHEN
     (time stamp on output), SELFILE (file selection menu), VARGRAPH (all
     graphics), DRXHELLO ("Leuchtspiel"), DIRAXDEF (default settings) and
     DIRAXGLB (global variables and routines), about 4400 program lines in
     total, were created by AJMD in Borland(*) Turbo Pascal(*) 5.5 on an
     Olivetti(*) PCS 286 with 80287 co-processor under DOS 4.01.(*)

     The cell reduction in DirAx is based upon Krivy, I. & Gruber, B. (1976).
     Acta Cryst. A32, 297-298, but simplified (written in vector form) and
     demanding less steps.

     We adopted the sorting algorithm HeapSort from the excellent book:
     William H. Press, Brian P. Flannery,
     Saul A. Teukolsky, William T. Vetterling:
     Numerical Recipes, Cambridge University Press; 1986.



     For a guaranteed and quick response:
     e-mail: DUISENBERG@CHEM.RUU.NL

     15 November 1992 [minor corrections 3 May 1996] (AJMD)
     ------------------------------------------------------------
     (*) Read (C), (TM) and (R).
