Program and file organization

The way of running SHELXS and the conventions for filenames will of course vary for different computers and operating systems, but the following general concept should be adhered to as much as possible. SHELXS may be run on-line by means of the command:
                         shelxs name
where 'name' defines the first component of the filename for all files which correspond to a particular crystal structure. On some systems, 'name' may not be longer than 8 characters. On UNIX systems, all filenames (including SHELXS) MUST be given in LOWER CASE. Batch operation will normally require the use of a short batch file containing the above command etc.

Before starting SHELXS, at least one file - name.ins - MUST have been prepared; it contains instructions, crystal and atom data etc. It will usually be necessary to prepare a name.hkl file as well which contains the reflection data; the format of this file (3I4,2F8.2) is the same as for SHELX-76 and SHELXS-86. This file should be terminated by a record with all items zero.

The reflection order is unimportant. This .hkl file is read each time the program is run; unlike SHELX-76, there is no facility for intermediate storage of binary data. This enhances computer independence and eliminates several possible sources of confusion. SHELXS-96 requires a single set of input data, and ignores batch numbers, direction cosines or wavelengths if they are present in the name.hkl file.

A brief summary of the progress of the structure solution appears on the console (i.e. the standard FORTRAN output), and a full listing is written to a file name.LST, which can be printed or examined with a text editor. After structure solution a file name.res is written; this contains crystal data etc. as in the name.ins file, followed by potential atoms. It may be copied or edited to name.ins for structure refinement using SHELXL-96 or partial structure expansion with SHELXS-96.

Two mechanisms are provided for interaction with a SHELXS-96 job which is already running. The first, which it is not possible to implement for all computer systems, applies to 'on-line' runs. If the key combination <ctrl-I> is hit, the job terminates almost immediately (but without the loss of output buffers etc. which can happen with <ctrl-C> etc.). If the <Esc> key is hit during direct methods, the program does not generate any further phase permutations but completes the current batch of phase refinement and then procedes to E-Fourier recycling etc. If the <Esc> key is hit during Patterson interpretation, the program stops after completing the calculations for the current superposition vector. Otherwise <Esc> has no effect. On computer consoles with no <Esc> key, <F11> or <Ctrl-[> usually have the same effect.

The second mechanism requires the user to create the file 'name.fin'; the program tries at regular intervals to delete this file, and if it succeeds it takes the same action as after <Esc>. The file is also deleted (if found) at the start of a job in case it has been accidentally left over from a previous job. This approach may be used with batch jobs, but may prove difficult to implement on certain systems. The output files are also 'flushed' at regular intervals (if permitted by the operating system) so that they can be examined whilst a batch job is running (if permitted).

The UNIX version of SHELXS is able to read the '.ins' and '.hkl' files in either UNIX or DOS format, and may be compiled so as to write the '.res' file in DOS format (see the comments near the start of the program source), so that PC's can access such files via a shared disk without the need for conversion programs such as DOS2UNIX etc. However the program is supplied with this option switched off, i.e. it writes standard UNIX format files. The '.lst' file is always in the local format for reasons of efficiency.