Program and File Organization

PROGRAM AND FILE ORGANIZATION


The way of running SHELXL-93 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. SHELXL-93 may be run on-line by means of the command:

 shelxl 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. Batch operation will normally require the use of a short batch file containing the above command etc.

Before starting SHELXL-93, two ASCII input files must be prepared. The file 'name.ins' contains instructions, crystal and atom data etc. The reflection data file 'name.hkl' contains one line per reflection in the same fixed format as for SHELX-76; batch numbers, wavelength (for Laue data) and 'direction cosines' (for absorption corrections using SHELXA) are optional. Although both files are essentially upwardly compatible with SHELX-76 and the Siemens SHELXTL system, there are many new facilities and some important philosophical differences. When converting '.ins' files from these programs to SHELXL-93, it is a good idea to DELETE or modify all WGHT, OMIT, BLOC, ILSF and MERG instructions (because of changes in their specifications), to review all AFIX instructions for possible differences or more appropriate new options, and to free any coordinates which have been fixed to anchor the molecule in polar space groups (the program has a better way of doing this). The Fourier grid is now larger and the asymmetric unit is found automatically, so FMAP and GRID should be replaced by e.g. FMAP 2. Free variables are no longer required for special position constraints or handling multiply occupied sites (see EXYZ and EADP) but are still legal and are interpreted in the same way. Disordered groups will probably require the addition of PART instructions and may benefit from some of the new restraints (SAME, SADI, FLAT, DELU and SIMU etc.).

A brief summary of the progress of the structure refinement 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 each refinement cycle a file 'name.res' is (re)written; it is similar to 'name.ins', but has updated values for all refined parameters. It may be copied or edited to name.ins for the next refinement run. Optionally further files 'name.cif' (refinement results) and 'name.fcf' (reflection data) may be created (using the ACTA instruction) in CIF format for direct publication, archiving and input to other programs (e.g. CIFTAB - see Appendices C and D).

Two mechanisms are provided for interaction with a SHELXL-93 job which is already running. The first, which it is not possible to implement on all computer systems, applies to 'on-line' runs. If the key combination is hit, the job terminates almost immediately, but without the loss of output buffers etc. which can happen with etc. Usually the key may be used as an alternative to . If the key is hit during least-squares refinement, the program completes the current cycle and then, instead of further refinement cycles, continues with the final structure-factor calculation, tables and Fourier etc. Otherwise has no effect. On computer consoles with no key, or usually have the same effect.

The second mechanism requires the user to create the file 'name.fin' (the contents of this file are irrelevant); the program tries at regular intervals to delete it, and if it succeeds it takes the same action as after . The name.fin 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 under most operating systems.

The UNIX version of SHELXL-93 is able to read the '.ins' and '.hkl' files in either UNIX or DOS format, and writes the '.res', '.cif' and '.fcf' files in DOS format, so that PC's can access such files via a shared disk without the need for conversion programs such as DOS2UNIX etc. The program may be compiled without this option if necessary. For reasons of efficiency the '.lst' file is always in the local format. Note that for UNIX systems all filenames associated with SHELXL-93 should be in lower case.

The program uses two large arrays A and B dynamically, so the limits on the size of structure which can be handled are determined by the dimensions of these two arrays and also of the array C; A, B and C are defined as separate COMMON blocks. The standard version of the program is dimensioned for up to 1500 parameters in each full-matrix block and roughly 5000 atoms (assuming a generous number of restraints etc.), and is suitable for a typical (UNIX) workstation (or mainframe) with 8MB or more physical memory. The standard precompiled PC version is similarly dimensioned but will automatically run as a virtual memory program if less memory is available; it thus requires 8MB of free contiguous disk space (plus another 2MB or so for scratch files) and an 80586, 80486 or 80386/80387 processor. A real mode precompiled PC version PCSHELXL.EXE is also available which should run on virtually ANY PC with a coprocessor and 640K memory; however it is restricted to 300 full-matrix parameters and is somewhat slower.

It may be necessary to redimension A, B and C and recompile the program for specific installations, e.g. to fit within a given job category on a mainframe. The highest elements of A and B actually used for the various calculations are printed out by the program (after 'Memory required ='). The program will try to use all available physical (and virtual) memory rather than performing its own disk I/O, thereby achieving longer vector 'runs', which enhances performance on vector and pipelined systems. In some cases, e.g. when a large structure is refined on a MicroVAX or PC with limited physical memory (or allocation of physical memory to a given process in the case of the VAX) this strategy may cause excessive 'paging' and disk I/O. If this happens, the maximum vector run length can be reduced by setting the 4th parameter on the L.S. instruction or by reducing the value of the variable IV in the main program and recompiling; it may also be more efficient to 'block' the refinement or use the CGLS option.


Ahead to The '.ins' Instruction File - General Organization

Back to Introduction

Back to Table of Contents