Tool Control Language* (TCL):

The main interface of GRACE is via a tool control language (TCL) which is a structured programming language. Cache technology is used to mirror either CHARMM or CHARMM functions into TCL. The free format data structures and input/output abilities of GRACE allow it to interface with QM packages like CADPAC, GAMESS_UK or GAUSSIAN with its own systems or CHARMM. The most sophisticated built-in user interface is between GRACE and CHARMM. When GRACE is using CHARMM, CHARMM is run as a ‘child process’ to TCL. By routing all commands that are unrecognised by TCL, and all commands that start with a capital letter into CHARMM, the programming language of CHARMM is completely integrated into the TCL language.

CHARMM data structures, such as the position and gradient arrays are ‘reflected’ into TCL arrays. When these arrays are accessed in TCL, GRACE keeps track of whether the TCL arrays need updating from CHARMM. In the reverse direction, before CHARMM performs any task, GRACE will check to see whether it needs to update CHARMM’s data structures from TCL. This means that the CHARMM data structures can be interfaced with the optimisers and analysis tools in GRACE. In the work where the AM1 QM/MM method in CHARMM has been used, GRACE has treated both the QM and MM atoms identically. It has been the job of CHARMM to generate the appropriate QM/MM function and gradient. The interfaces with CADPAC and GAMESS_UK is less sophisticated. It operates as part of the ab initio QM/MM modelling method in GRACE. When the energy and gradient of a QM/MM system is required, GRACE constructs an appropriate input deck for either GAMESS_UK or CADPAC, runs that code and parses out the energy and gradients from either the punch or the log file. The MM components of the QM/MM function are then constructed via the interface with CHARMM. None of this requires any interface with the QM/MM methodologies in CHARMM.

*Ousterhout,J.K. 1994. Tcl and Tk toolkit. Addison-Wesley ISBN 0-201-63337-X.