E1120

EXPERIENCES PORTING CRYSTALLOGRAPHIC SOFTWARE TO MODERN USER INTERFACES: A WINDOWS VERSION OF THE NRCVAX PACKAGE. Peter S. White, Department of Chemistry, University of North Carolina, Chapel Hill, NC 27514, U.S.A. and Eric J. Gabe, Steacie Institute for Molecular Structure, National Research Council of Canada, Ottawa, Ontario K1A 0R6, Canada

NRCVAX is a complete suite of programs for the solution and refinement of crystal structures, designed to compile and run on a wide variety of computers. This has been achieved by writing the code in standard Fortran 77 and isolating any potential machine dependencies. The package relies on the operating system to provide a mechanism for starting routines which are interconnected by files containing the crystal and reflection data. The user interacts with the individual routines by means of a series of questions and answers. The system, whenever possible, suggests reasonable default answers which can be selected by pressing return.

This user interface is extremely powerful and easy to use, however, it is fast becoming an unnatural environment for new users, who are more conversant with the windowed style user interface of modern personal computers and workstations. NRCVAX has therefore been redesigned to take advantage of current graphical user interfaces (GUIs). In doing so we have been forced to make a choice of operating systems to support, as GUIs tend to be linked quite intimately to the underlying operating system. We have initially chosen the Windows95 and NT systems to be followed closely by a Motif version for Unix workstations.

A common method of providing a GUI, which works well for much code, is to write a program that interacts with the user and generates a file of input instructions for the existing routine. The routine is then executed in the background and its output trapped and presented to the user. This works well for `batch' style software but was not suited to NRCVAX where the questions a user is asked are often based on prior responses. So the programs have been designed with the user interaction localized to a limited number of subroutines which are called directly by the user interface. Output in most programs is returned to a scrollable window which the user may choose to save or print.

As part of this effort the existing command line version of the software has been carefully examined and modified to reduce user input and eliminate redundant questions.