DESCRIPTION OF INPUT COMMANDS

Appendix A contains a listing of the new features that are available for the 
current version of the program. Appendix B contains example inputs.

All input commands to the program are keyword-based and free-formatted. 
The input parser converts lower case characters to upper case 
so the program commands are not case dependent (though the program keeps 
the cases of the file names and the title unchanged).
Each input line can contain at most 80 characters.
The following characters are recognized as delimiters between 
words -- a space, a comma, a tab, and an equal sign. More delimiters can 
be implemented by inserting them in the array SPACER in subroutine PARSER 
(and change the variable NSP at the same time).
Comments in the input can be introduced by using the COMMent command or
using the special character ``!'' --- in the input parser, all characters 
in the input line beginning at the ``!'' are ignored.

Presently, the program uses five logical I/O units, labelled by the 
variables LIN, LOG, LPRT, LOBS, and LSCRCH, which are initialized to be
5, 6, 3, 1, and 2, respectively.
(The default values of most of the input variables are initialized in 
subroutine INITSS). All input commands are read from unit LIN.
The output of the program will be written to unit LPRT. A name can be 
specified for this print file by using the PRINt command.
The reflection data (if any) are read from unit LOBS. This unit is also used 
internally to read and/or write rotation function map files.
The scratch file on unit LSCRCH is used for echoing 
the input commands at the end of the output file.
Program messages are written to unit LOG. They are informational messages, 
warning error messages (*Warning*), or fatal error messages (*Fatal*). Each
message is preceded by the name of the subroutine that produced it.

What follows is a description of the input commands that are
currently supported by 
the program. A new command can be incorporated by 
inserting the command name in array COMMND, in subroutine INITSS, and by 
inserting a segment in subroutine INTPRT that defines the input parameters
(if any) of the 
command. The program identifies each command by its first four letters,
although more can be input for readability. In the following listing, the 
four-letter command keyword will be given in bold face, the names 
of input variables associated with the command will be given in UPPER case.
The expected length of the character variables are also 
given (for example, ORDOR*5 means ORDOR is a character variable 
with 5 letters). Variables whose names begin with the letter `Q' are 
logical variables. A `True' of `False' input is expected for these 
variables.
The defaults (if any) of the variables are given in
square brackets. 
These default values will be used by the program if the 
command is omitted from input, or if a value of 0 is input to the command.
0.5in



        to 2.5in#1 #2  
        #3 [#4] 



I. GENERAL INPUT COMMANDS


COMM ent none none
This can be used to incorporate comments in the command input file. The 
entire input line is simply ignored by the program. The 
other way to introduce comments is through the use of the 
special character ``!'' (see above). The difference between the two is that 
comments incorporated by this command will be echoed at the end of 
the program print file.

PRIN t-File PRTFIL*72 GLRF.PRT
This provides a name for the output file of the program (associated with 
the logical unit LPRT). 
The LOG unit is meant to be associated with the system 
output (terminal screen in interactive mode and job log file in batch 
mode). 

STOP   none none
The program will stop reading from the command input
file and start the actual calculation. Otherwise, the program will read 
until the end of file on unit LIN before initiating the calculation.

TITL e ATITLE*132 PROGRAM GLRF
This provides a title for the current run of the program. It will be 
placed at the beginning of each output page. The program will insert the 
current date and time at the beginning of ATITLE (characters 2-18), 
and the program will 
append a version number identifier at the end of ATITLE (characters 
111-130).




II. DEFINITION OF A FEW CONVENTIONS


EULE r-Angle EULER*3 ZYZ
This specifies the definition convention of Eulerian angles. Two 
conventions are currently supported --- ZXZ and ZYZ, corresponding to 
rotation around the Cartesian Z axis (), then around 
the X (and Y, respectively) axis (), 
and finally around the Z axis (). 
ZXZ is the convention described in 
M. G. Rossmann  D. M. Blow Acta. Cryst.
15, 24, (1962). ZYZ is used in program MERLOT (P. M. D. 
Fitzgerald, J. Appl. Cryst. 21, 273, (1988)). 
The angles should be input to the program
in the following order
--- ,
and the program outputs the angles in the same order.

WARNING: The matrix used 
in this program is the transpose of the matrix as
printed in Table 1 of the paper by Rossmann  Blow. Therefore, if you are 
comparing the results from this program with other programs, be sure that 
the programs are using the matrices the same way! The same goes for the 
command POLAr (see below).

Consequently, the search limits for angles  and 
as defined by S. N. Rao, J.H. Jih  J. A. 
Hartsuck (Acta Cryst. A36, 878--884, (1980)) should be 
swapped. The  limit should be used as the limit on  in 
this program. In any case, the user is strongly encouraged to check out the 
symmetry of the rotation function with the program. 
A few (1 or 2) large terms and very large intervals 
(5-10) should be used to speed up the calculation.

POLA r-Angle POLAR*3 XZK
This specifies the polar angle definition convention. Two 
conventions are currently supported --- XYK and XZK. In both cases, 
 is the angle from the Cartesian X 
axis. In convention XYK (as defined in Rossmann  Blow),  is the 
angle from the Y axis. In convention XZK (as in MERLOT),  is the 
angle from the Z axis.  is the rotation around the axis defined by
 and . The angles should be input to the program in 
the following order -- , 
and the program outputs the angles in the same order. 

The XZK convention should be used for most calculations. The XYK convention 
can be used for monoclinic space groups in the -unique setting.

ORTH ogonalization ORDOR*5 AXABZ
This specifies the orthogonalization convention that should be used by the 
program. Four conventions are currently supported -- BYBCX, CZBCX, 
AXABZ, CXCAZ, and Y3XYC.
In convention 
BYBCX, the real space  axis coincides with the Cartesian 
Y axis, and 
(or ) coincides with the X axis (this is first defined in the paper by 
Rossmann  Blow). 
In convention CZBCX, the real space  axis coincides with the 
Cartesian Z axis, and  (or ) coincides with the X 
axis (this is IPER=1
in MERLOT). In convention AXABZ, the real space  axis coincides with the 
Cartesian X axis, and  (or ) coincides with the Z axis 
(this is used by the Protein Data Bank,
FRODO's helper SAM, PROTEIN, and X-Plor. This
is also option NCODE=1 in program ALMN). Convention CXCAZ corresponds to 
NCODE=3 in ALMN and is suggested by David Borhani. This convention should 
be used only for monoclinic space groups in the -unique setting.
Convention Y3XYC, courtesy of Dr. Murthy, has been designed for 
rhombohedral space groups in the rhombohedral setting. It aligns the 
crystal three-fold axis (direction 111) along the Y axis, 
and puts the real space  axis in the XY plane (X, Y quadrant).
Other conventions can be incorporated as well, by inserting the 
codes in subroutine GTOMDM, which calculates the orthogonalization matrix 
from the cell parameters. The deorthogonalization matrix is calculated 
as the inverse of the orthogonalization matrix.

The AXABZ convention should be used for most calculations. The BYBCX 
convention was designed for monoclinic space groups in the -unique 
setting to align the crystal  axis along the Cartesian  axis. The 
AXABZ convention will maintain this alignment and should therefore be used 
for monoclinic space groups as well.




III. SPECIFICATION OF LOCAL SYMMETRY

LOCS ymmetry (RLCAXS(i), i=1, 3), MLCAXS, TLCAXS*1 none
This defines the local symmetry elements in a standard orientation.
Only the unique symmetry elements need to be specified for this purpose. 
For example, for 222 symmetry, only two orthogonal two-folds need to be 
given. For icosahedral symmetry, only two symmetry axes (one two-fold and 
one non-orthogonal five-fold, one three-fold and one non-orthogonal
five-fold, or two five-folds, etc)
need to be given. The rest of the symmetry operators 
can be automatically generated by the program (see command LOCExpand). 
The symmetry operator
can be specified as a set of Eulerian angles (TLCAXS=`E'), or a set of polar 
angles (TLCAXS=`P') (the interpretation of the angles depends on the 
convention used, see II), or the Cartesian coordinates of the
end point of a vector from the origin 
(TLCAXS=`V'), or as direction cosines (TLCAXS=`D'). The default for TLCAXS 
is Polar. The unique rotation around the axis is specified by MLCAXS, 
either as an angle or as a divisor of 360. If the axis is specified as 
polar angles, the information from the polar angle supercedes the value 
specified for MLCAXS, and a warning will be issued if the information from 
the two sources do not agree. The maximum number of local symmetry axis 
that can be specified by this command is given by the MAXLAX parameter.

The program converts the input to a rotation matrix 
immediately, so the angle convention used to define the local symmetry can
be different from that used later in the search.

If no local symmetry elements are defined by the input, the program will 
carry out ordinary rotation function calculations.

LOCE xpand QLCXPD T
If QLCXPD is true, the program will generate all the 
local symmetry operators
by pairwise multiplication of all the known 
operators until no new symmetry element is generated by the process. 
For this algorithm to work, the positions of the 
starting local symmetry axes must be 
specified with sufficient accuracy.
If QLCXPD is false, the program will not carry out the above 
expansion. This is useful in cases where improper rotation axes are
being dealt with (for example, a local two-fold with a rotation of 175).

A set of polar angles (in the convention specified by 
POLAR) will be extracted from the rotation matrices and the local symmetry 
operators are sorted on these angles before they are output. The maximum 
number of local symmetry operators is given by the MAXLOC parameter.

LOCI nterpolate QLCINT F
This is useful only if the slow rotation function is used to calculate the 
locked rotation function. If QLCINT is true, an ordinary rotation function 
will be calculated with the slow rotation function, covering the entire 
rotational space (0-360 in  and  with a grid
interval of 2.8125, 0-180 in  with a grid 
interval of 3.0). The locked rotation function is then calculated 
by interpolating among the ordinary rotation function values. (Note that 
this is the mode of operation if the fast rotation function is used.) If 
QLCINT is false, the locked rotation function will be calculated directly, 
with the slow rotation function. For initial searches, QLCINT should be set 
to true (or the fast rotation function should be used). For fine searches, 
QLCINT should be set to false (also see command PKFIt).

LOCO rient (ALCORI(i), i=1, 3), TLCORI*1 0.0, 0.0, 0.0, E
The rotation that should be applied to the standard orientation
(as defined by LOCSymmetry and LOCUpdate commands) to bring it to that 
in the crystal is defined with this command. This command is useful only 
for the
locked cross rotation function. The rotation defines 
the matrix .
The angles can be either Eulerian (TLCORI=`E') or
polar (TLCORI=`P'). The default for TLCORI is Eulerian. The convention of 
the angles can be specified by POLAr or EULEr. The input is 
immediately converted to a rotation matrix, so the angle convention 
definition can be temporary.

LOCU pdate (ALCUPD(i), i=1, 3), TLCUPD*1 0.0, 0.0, 0.0, E
The orientation of the local symmetry operators as defined by the 
LOCSymmetry commands can be changed with this command.
The updating angles can be either Eulerian (TLCUPD=`E') or
polar (TLCUPD=`P'). The default for TLCUPD is Eulerian. The convention of 
the angles can be specified by POLAr or EULEr. The input is 
immediately converted to a rotation matrix, so the angle convention 
definition can be temporary.




IV. COMMANDS THAT DEFINE THE FIRST (A) CRYSTAL

The program can deal with the reflection data of three crystals, named 
A, B and C. It 
is the A crystal that is rotated in real space to match the B 
crystal.
This means that, in the case of cross rotation search with a model, the 
calculated structure factors based on the model should be input as the A 
crystal, and the resulting rotation matrix should be applied directly to 
the search model. In the case of self rotation search, the A crystal 
information is copied into the B crystal.

ACEL l-Parameters (CELL(i, 1), i=1, 6) 
        1.0, 1.0, 1.0, 90.0, 90.0, 90.0
This inputs the unit cell parameters of the A crystal. The parameters can be 
either in real or reciprocal space. The angles can be either in degrees or
in cosines.

ASYM metry   none
This inputs the space group symmetry operators of the A crystal, in the 
same format as the International Table. Positions related by centering 
should not be input. Positions related by inversion or mirror planes
are not supported by 
the program. If no symmetry card is given, the program defaults to 
P1. The identity operation is assumed and need not be specified.

The space group symmetry can also be specified by giving the symbol of the 
space group (for example P212121) or the number of the space group (for 
example 19). For monoclinic space groups, only the -unique setting is 
supported. For rhombohedral space groups, only the hexagonal setting is 
supported. If you want the other settings, input the symmetry operators 
explicitly.

AOBS -File OBSFIL*72 FOBS.DAT
This specifies the name of the formatted file holding the reflection data 
of crystal A. The file should contain , and optionally  
for each reflection. The format of the file is specified by the 
command AFORmat. The 
file should be terminated by the end of file, not by an end-of-file
record. The maximum number of reflections that can be saved is given by the
MAXREF parameter.

AFOR mat OBSFMT*72 (3i4, 2f8.2)
This specifies the format of the reflection file, for the following 
input list --
. The parentheses in the format are optional. Note 
that a format must be specified for  
even if the file does not contain  values.

ACUT -off SIGCUT, FCUTLO, FCUTHI 1.0, 1.0, 0.0
This specifies the cut-off criteria for screening the reflection data of 
the A 
crystal. Reflections with F(input)  SIGCUT (input), or
with F(input)  FCUTLO, or with F(input)  FCUTHI will be rejected from the 
calculation. If FCUTHI is 0.0, no high cut-off will be carried out. 
F(input) and (input) are the values as read from the input 
reflection file. The program will print out how many reflections are 
removed by each of the above criteria, so reasonable inputs can be 
selected accordingly.

APOW er POWER 2.0
The intensity of reflections in the A crystal will be calculated as
F(input)**POWER. Therefore, if intensity data is being input, set POWER to 
1.0.

NSHE ll NSHELL 8
The reflection data will be divided into NSHELL shells of 
equal reciprocal volume, and an 
average intensity will be calculated for each shell. This will be useful 
for origin removal (see command ORIGin) and for selection of large terms 
(see command CUTOff). The maximum number of 
shells is specified by the parameter MAXSHL.

ORIG in-Removal QORIGN T
The origin of the A crystal Patterson map will be removed if QORIGN is 
true. In that case, an average intensity, calculated in shells of 
resolution, will be subtracted from each 
reflection.




V. COMMANDS THAT DEFINE THE SECOND (B) CRYSTAL

First, the commands that parallel those for the A crystal --

0.5in BCELl-Parameters (CELL(i, 2), i=1, 6)

0.5in BSYMmetry

0.5in BOBS-File (OBSFIB*72)

0.5in BFORmat (OBSFMB*72)

0.5in BPOWer (BPOWER)

0.5in BCUT-off (BSGCUT, BCUTLO, BCUTHI).

These input variables default to the values for the A crystal.

CUTO ff CUTOFF 1.5
This defines the selection criterion for
the strongest reflections (large terms) 
from the B crystal data. 
Reflections with I  CUTOFF  
I(average) will be saved as the large terms, where I(average) is calculated 
in NSHELL shells of equal reciprocal volume. 
A CUTOFF value of 1.5 usually results in about 20 of the data being saved 
as large terms, which is generally sufficient to obtain accurate slow
rotation function values. 
The maximum 
number of large terms that can be saved (after expansion to a hemisphere 
by crystallographic symmetry) is specified by the parameter MAXBIG.




VI. COMMANDS THAT DEFINE THE THIRD (C) CRYSTAL

A third crystal, C crystal, can be input to the program to carry out two 
cross rotation searches simultaneously. This will be useful, for example, 
if a sample has been crystallized in two different forms.
Knowledge of the orientational 
relationship between molecules in the B crystal and the C crystal is 
required. This can be determined by a cross rotation search between the B 
and the C crystals. For a detailed discussion, see Appendix C.

The C crystal information is input to the program through the command CXTAl 
--

CXTA l OPTION*4 
where OPTION is a four-letter keyword that specifies the function 
of the command. A list of the currently supported OPTIONs follows.

BTOC-relationship --- (B2CANG(i), i=1, 3), B2CCON*1
 This specifies the rotational relationship 
between molecules in the B and 
the C crystals. A molecule in crystal B must be rotated by B2CANG to match 
the orientation of a molecule in crystal C. The angles B2CANG 
are interpreted as Eulerian if B2CCON is `E' or polar if B2CCON is `P'. 
The angle convention is defined by EULER or POLAR. The maximum number of 
relationships that can be specified is given by the MAXLAX parameter.

CELL-parameters --- (CELL(i, 3), i=1, 6)
 This specifies the cell dimension of the C crystal.

FOBS-file --- OBSFIC*72
 This specifies the name of the C crystal reflection file.

FORMat --- OBSFMC*72
 This specifies the format of the C crystal reflection file. The 
default is (3i4, 2f8.2) for the input list , F, and .

POWEr --- CPOWER
 This specifies that the input structure factors
for the C crystal should be raised to 
the power of CPOWER to calculate the intensities of the reflections.

REJEction-criteria --- CSGCUT, CCUTLO, CCUTHI
 This specifies the screening criteria for the C crystal data.

SYMMetry --- 
 This defines the space group symmetry of the C crystal.

The program will read in the reflections and save only the large terms,
selected based on the CUTOFF (see command CUTOff).




VII. SPECIFICATION OF SEARCH PARAMETERS


BOXS ize (IBXHKL(i), i=1, 3) 3, 3, 3
This specifies the interpolation box size around each rotated reflection.
The size of the box should be big enough to cover the maximum of the G 
function. At the same time, it should not be too big because the calculation 
time is proportional to the volume of the box. For most cases, a 
 box should be large enough. 
A bigger box may be used 
in the case of centered lattices due to the systematic absences.
The maximum dimension of the box is specified by the MAXBOX parameter.

CROS s-search QCROSS F
This specifies that the program should perform cross rotation calculations.
QSELF (see command SELF-search)
and QCROSS are mutually exclusive. Specifying QSELF to be true 
will disable QCROSS automatically. Due to its default,
QCROSS will need to be set to true for
cross rotation searches. It also must be true if cross rotation 
calculations need to be performed by the commands LOCRotate, and MATRix.
If QCROSS is false, the program will carry out self-search 
calculations.

GEVA luation IGEVAL 2
This specifies how the G function values should be calculated. Currently 
supported options are -- IGEVAL=1, which means the G values will be obtained 
from a table look-up based on the value of ; IGEVAL=2, which means 
the G values will be sampled in the interpolation box at an interval of DHKL
in  and 
(DHKL is a program parameter, currently set to be 0.1);
IGEVAL=3, which means the nearest integer of the 
rotated index will be used in the calculation (fastest way of getting the G 
value, but with the most error. 
Recommended only for checking the symmetry of the rotation function);
and IGEVAL=4, which means the G values 
will be calculated based on the formula from the distance (). See the 
paper by Rossmann  Blow for detailed description of the G function.

MAPF ile MAPFIL*72 none
If a file name is specified by this command, 
the program will dump the rotation function 
values as a formatted file. Default is that the map values will not be dumped.
This file may be useful for later processing with other programs (see the 
command PEAK).

OANG le OANGLE*1, OTYPE*3 P, XZK
The rotation function peaks will also be converted to Eulerian (OANGLE=`E') 
or polar (OANGLE=`P') angles for output. OTYPE specifies the convention that 
should be used with the Eulerian or polar angle (see II). Therefore, 
two sets of angles are output corresponding to each peak in the rotation 
function map -- the first set is defined by the SANGle command, the second 
defined by this OANGle command.

PEAK -Cutoff PKCUT, NLIST, MAPFIL*72 3.0, 40
The program will perform a peak search in the resulting rotation function 
map. In this peak search, grid points whose
values are less than PKCUT  
(where  is the standard deviation of the map values)
over the map average 
will be skipped. NLIST peaks will be printed at the end of the 
peak search. The maximum number of peaks that can be saved is given by the 
MAXPKS parameter. 

If a file name has been specified for MAPFIL, the program
will read the map values from that file and perform a peak search.
In this case, no self or cross rotation search will 
be carried out.

PKFI t NPKFIT, PKFCUT 5, 1.5
The program can automatically 
carry out fine searches, with the slow rotation function, for the top 
NPKFIT peaks in the ordinary or locked
rotation function. Specifying this command will also 
set the logical QPKFIT to true, which defaults to false. If a negative 
number is input for NPKFIT, QPKFIT will be set to false. PKFCUT is the 
large-term cut-off that will be used by the slow rotation function. The 
program will first search in 1 intervals to locate the peak. Then 
the grid interval will be lowered to 0.5. The peak positions 
obtained from these fine searches can be used directly by the P1PC and GLTF 
commands.

PRER otation (AUVW(i), i=1, 3), (BUVW(i), i=1, 3) 0
This command performs a ``pre-rotation'' which aligns a direction in the A 
crystal, specified by AUVW, with a direction in the B crystal, specified by 
BUVW. This command can be used only if a cross-rotation search is being 
performed. The direction can be specified either as a set of fractional 
coordinates, in which case the vector from the origin to this point will 
define the direction, or as a set of polar angles -- , , and 
the third field should be `P'olar or a number less than -999.0. The polar 
angle convention is taken from the POLAR variable and the orthogonalization 
convention is taken from ORDOR. The subsequent search will be carried out 
in polar angles. Only  will be allowed to change,  and  
are determined by BUVW.

RADI us RADIUS 30.0
This specifies the radius of integration, in . 

RCUT off RCUTLO, RCUTHI 0, 20
RCUTLO has been implemented mainly as a way of saving computation time. 

In the ordinary rotation search calculated by the slow rotation function, 
if the rotation function value at a search
grid point is less than RCUTLO (default is 25 for self-search and 500 
for cross-search), all the neighbors 
of this grid point is flagged and will be removed from further 
calculations. These grid points are output in the map file (see command 
MAPFile) with a value of -999. If there are more than 2500 grid points in 
the search, the program will determine RCUTLO automatically and carry out a 
coarse search through the grid points first and remove those grid points 
that are unlikely to give high rotation function values. 

In the locked rotation search, if the rotation function value at a 
search grid point for one of the local symmetry axis is less than RCUTLO 
(default to be -100 for self-search and 0 for cross-search), 
this grid point will be flagged and the program 
will skip to the next grid point. If the fast rotation function is used, 
the program will determine RCUTLO automatically.

RCUTHI has been implemented to deal with the overlap of local 
symmetry axes with the crystallographic axes in the locked self rotation 
function searches. In the locked self rotation search, if a local rotation 
axis is within RCUTHI degrees of a crystallographic one, the local axis 
will not be used in the locked self rotation function.

RESO lution-limits DMAX, DMIN 10.0, 3.5
This specifies the resolution limits for reflection data that will be used 
in the search. This applies to both the A and the B crystal. The maximum 
Miller indices are given by the parameters MAXH, MAXK, and
MAXL, respectively. The 
program will abort if either of them is exceeded. 

SANG le SANGLE*1 E
This specifies whether the search will be carried out in Eulerian or polar
angles. For ordinary self rotation searches, polar angles are preferred 
(for example, section of  = 180 to look for two-fold axes). 
For cross rotation 
searches and for locked rotation searches, Eulerian angles is the 
better choice because the symmetry in the rotation function can be recognized 
more easily and because it is easier to evenly sample the rotation space 
with
Eulerian angles.













SECT ion SECSHN*3 
The sectioning of the map in the output map file (see command MAPFile)
is defined by this command. The first
field specifies the map sections, the second field specifies which angle
will be output across the page, and the third field specifies which angle 
will be output down the page. For example, specifying `321' would mean
 () sections,  () across, and  
() down the page. The second and/or the third field can be omitted 
and the program will provide reasonable defaults. If the command is 
omitted, the program will choose the angle with the smallest number of 
grid points as the section direction. The angle with the largest number 
of grid points will be output across the page.

SELF -search QSELF T
This specifies that the program should perform self rotation calculations.
In this case, the information for crystal A
will be copied to get the B crystal. 

SLIM its IAXIS, (SLIMTS(i, IAXIS), i=1, 3) none
This specifies the angle limits for the current search. Three separate
SLIMits commands need to be given to define the limits in all three angles.
IAXIS can assume values of 1, 2, and 3, corresponding to  
(),  (), and  () in the case of 
Eulerian 
(polar) angles. The angle limits are specified as --- beginning value, ending 
value, and increment. 

If ordinary self- or cross-rotation function calculations are being 
performed in Eulerian angles, the program can automatically define the 
angle limits to cover the entire unique region of rotational space. To 
activate this feature, specify a number that is greater than 180 
for the beginning or ending value of . Only the hexagonal setting 
is supported for rhombohedral space groups.
If the increment value for 
 is input as 0, the program will also assign reasonable 
grid increment values along the three angles. Therefore, if an ordinary 
self- or cross-rotation function calculation in Eulerian
angles covering the entire unique 
rotational space is desired, the search limits can be simply defined
as `SLIMits 2 270 270 0'. 

For ordinary self rotation function in polar angles, specifying `SLIMits 
270 270 0' will define the search limits as 0 - 180 in  and 
 in 3 intervals, and 60 - 180 in  in 
30 intervals. It is best that this option be coupled with the fast 
rotation function.

The program can also try to assign reasonable 
limits if a locked self or cross rotation function is being calculated. For 
locked self rotation function, the search region assigned depends on the 
symmetry of the A crystal. For locked cross rotation function, the entire 
rotational space will be assigned. The unique rotational space for a locked 
self and cross rotation function also depends on the symmetry of the 
non-crystallographic point group. It is suggested that the user first
carry out a locked rotation
search, with the fast rotation function, covering the entire rotational 
space to identify the symmetry in the locked rotation function.

For self-rotation searches, the map values are scaled such that matching 
the Patterson map onto itself without any rotation will give a height of 
1000. This puts the rotation map values on an ``absolute'' scale so that 
results from different runs of the program can be compared.
This also means that all crystallographic symmetry operators should give 
rotation function values of 1000. For cross-rotation searches, a rough scale 
factor is estimated before the search is carried out. After the search, the 
maximum value of the map is then re-scaled to 1000. In both cases, the 
maximum, minimum, average, and the standard deviation from average of the 
map values will be reported by the program.

XCOR relate QXCORR, NXCORR F, 5
This specifies whether the program will try to correlate the ordinary cross 
rotation function results with the self rotation function. The program will 
expand the cross RF peaks (or a set of angles given by the ANGLe command) 
by the crystallographic symmetry (similar to SYMShow command)
and identify all the self rotation angles 
relating the various cross rotation angles. 
If reflection data have been given, the program will also 
calculate the self RF value for these angles, with the slow RF. The 
large-term cutoff for this is set at 1.5, and the origin will be removed.




VIII. THE FAST ROTATION FUNCTION


FAST -rotation-function QFRF F
Calculations with the Crowther
fast rotation function (R. A. Crowther The 
Molecular Replacement Method, edited by M. G. Rossmann, 174--178, (1972)) 
are supported by this program. 
The maximum Bessel function order is 60. This allows the use of a larger 
radius of integration in the calculation (maximum radius allowed is roughly 
given by 10.8, where  is the high resolution limit of the 
reflection data used in the calculation).
By default, the program will use the `slow' rotation function.

The ordinary self- or cross-rotation functions can be calculated using 
this technique, with either Euler or polar angles (see command SANGle). 
Internally, the program calculate the fast rotation function with Euler 
angles in convention ZYZ. If other Euler conventions or if polar angles are 
used for the search, the program will interpolate among the results from 
the fast rotation function.

Only the ``large" terms (see 
command CUTOff) of BOTH the A and the B crystals are used. The recommended 
value for CUTOFF however is around 0.25.

If QORIGN (see command ORIGin) is set to true, the Patterson origins of 
BOTH the A and the B crystals are removed. The user is encouraged to try
both possibilities to see which give the better results.

The entire rotational space (0--360) is covered in  and 
 by the fast rotation function, with a 
grid interval of 2.8
(or more accurately 360/128 = 2.8125, where the number 128 is 
chosen to simplify the FFT calculation).
The command SLIMts should be 
used to define the unique regions of the rotation function in 
 and . The search range and grid interval along 
 should be defined with the SLIMts command as well.

The fast rotation function as implemented here should work for most space 
groups, including the cubic ones (point groups 23 and 432). In the latter 
cases, the unique region of the rotation space can be defined based on
point groups 222 and 422 and be aware then 
that the peaks listed by the program 
will contain crystallographically-related rotations (use the command 
SYMShow to sort out the peaks).

The fast rotation function can also be used, and is preferred, for 
locked rotation function calculations. The program will do the necessary 
interpolation to obtain values for the locked rotation function on the grid 
of the fast rotation function.

As with the slow rotation function, the program will carry out a 
peak search through the rotation function map. Similarly, 
contour maps can also be 
created based on the fast rotation function results. The fast rotation 
function results can also be written out to a file (see command MAPFile).

Once an initial peak position has been identified with the fast rotation 
function, finer searches around that position can be carried out with the 
slow rotation function.

NORM alize QNORME, EEMAX F, 8.0
Normalized structure factors (E values) can be used in the calculation of 
the fast rotation function. The reflection intensities are normalized by 
dividing with the average intensity at the resolution shell. The E values 
are allowed a maximum value of EEMAX. Default is that the intensities, 
rather than the E values, will be used.




IX. PATTERSON CORRELATION REFINEMENT


COOR dinate OPTION*2 
This defines the atomic model for the PC refinement. OPTION is a two-letter 
keyword that define the function of the command. Supported options are --

BOverall -- BOVRAL.
  This defines the overall  value to replace any 
that is on the input file.

BZero -- BZERO.
  This defines a  value that will be applied to any 
input atom with a  of zero.

INput -- CORINP*72. 
  This defines the name of the file that 
contains the atomic coordinates in PDB format. The coordinates are expected 
to be in the same orientation as that 
used to calculate the structure factors supplied 
with the AOBS command. The program will automatically translate the model 
to place its center at the origin.

OUtput -- COROUT*72. 
  The atomic coordinates after PC 
refinement can be written out. The default file name is rigid.pdb.
The coordindates for all the rotation function peaks that are used in the 
PC refinement are written to this
file. There are comment lines at the beginning of each segment of 
coordinate entries defining which rotation function peak they correspond to.

GROU P IGROUP, RES1*6, RES2*6 
The first step of the PC refinement is always an overall refinement, using 
the entire molecule as a rigid body. This command can be used to define 
smaller groups that will be used in the second step of the PC refinement. 
IGROUP defines the number of the group, and RES1 and RES2 defines the 
beginning and ending residue number for the group. The command can be 
repeated to specify different groups or groups with more than one residue 
ranges. Residues that are not selected by any of the groups will not be 
changed by the refinement. Chain names are supported and should be 
separated from the residue name with /, , or :. The question mark ? can be 
used as a wild card and matches to any character. For example, 
GROUp 1 A:???? A:????,
GROUp 2 B:???? B:????. will define two groups for chains A and B. 

P1PC -refinement NPCPKS, NPCCYC, PCCUT 5, 10, 1.0
The program will carry out a Patterson-correlation refinement for the first 
NPCPKS peaks in the ordinary cross rotation function. NPCCYC specifies the 
number of cycles for each refinement step. PCCUT specifies a large-term 
cutoff that should be used with the PC-refinement. Default is that the 
PC-refinement will not be done.




X. LOCKED TRANSLATION FUNCTION.


GLTF unction OPTION*4  
This activates the locked translation function. For this function to work, 
a locked cross rotation search (either with slow or fast rotation function) 
must have been carried out first. The peaks in this search can then be used 
for the locked translation function (see option RFPEak below). The atomic 
coordinates, corresponding to the A crystal reflection data in the search, 
should be input with the COORdinate command (see the section on P1PC 
refinement above). 

The program will do a peak search through the translation function and 
lists the top 10 peaks in the map. The maximum value of the function is 
scaled to 1000. The peak cut-off for this search is set at 3 or 
400, whichever is smaller. If packing check is not used during the 
calculation (see option PACK below), the position with a height of 1000 may 
not be present in the peak listing as it may have packing problems.
The program will output the atomic model for the entire 
assembly corresponding to the top peak in the locked translation function 
to a file. A name can be specified for this file with the COORdinate OUtput 
command (see above). If more than one rotation peaks are used, the file 
will contain separate assemblies, each identified with the rotation 
function peak number. This model for the assembly should then be input to 
an ordinary translation function program (for example, TF) to find the 
center of the assembly in the unit cell.

OPTION is a four-letter 
keyword that define the function of the command. 
Currently supported options are (in alphabetical order) --

CUTOff -- GLTFCT.
  The large-term cutoff that should be used for the locked 
translation function. Default is 1.5.

DIREct-summation -- QDRECT.
  This specifies whether the locked translation function should 
be evaluated by direct summation. Default for QDRECT is false, meaning the 
function will be evaluated by FFT. If the local symmetry is high (point 
group 432 or higher), the program will force direct summation.

MAPFile -- LTFMAP*72.
  This specifies a name for a file where the locked translation 
function map will be dumped. Not implemented yet.

OVERlap -- NOVLP, DCUTTF.
  This specifies the maximum number of close Ca - Ca 
(or P - P for nucleic acids) contacts 
that are allowed in the packing check. The distance cut-off for this check
is given by DCUTTF. The default for NOVLP is 40. The default for DCUTTF is 
3, which should be appropriate for protein structures. For nucleic acid 
structures, try using DCUTTF of 5.
The program will try to save 
only 200 Ca atoms, which may lead to the selection of every second, or 
third Ca atoms only. In such cases the value of NOVLP will be changed 
automatically by the program.

PACKing-check -- QPACK.
  This specifies whether packing of the monomers in the assembly 
should be checked during the calculation. Default for QPACK is false. This 
is coupled with the default for QDRECT of false. If direct summation is 
used, QPACK should be set to true. If this
packing check is not done during the 
calculation, it will be performed during the peak search. The packing 
check during the peak search also 
examines the steric contacts among the assemblies that are related by unit 
cell translations. If the number of contacts for either packing check is 
greater than a pre-set number (see option OVERlap), the grid point will be 
ignored. The number of contacts found within the assembly is listed under 
`Overlap'. The number of contacts found among the assemblies is given under 
`Cell' in the peak listing.

RADIus -- RADMAX, RADMIN.
  This defines the maximum and the minimum
lengths of the translation vector. 
Grid points in the search region (see option SLIMts below) that are more 
than RADMAX angstrom away from the origin will be ignored. The default for 
RADMAX is 30. 
Grid points in the search region that are less
than RADMIN angstrom away from the origin will be ignored. The default for 
RADMIN is 5. 

RFPEak -- NTFPKS.
  The top NTFPKS peaks in the locked cross rotation function 
will be used for the locked translation function. The program will do a 
separate calculation for each rotation peak.

SLIMits -- I, BEGIN, END, INCREMENT.
  This defines the search region for the translation vector. The 
integer I can take the value 1, 2, or 3, corresponding to the Cartesian 
coordinates X, Y, or Z. The values should be given in angstrom units.




XI. MISCELLANEOUS COMMANDS


ANGL e X, Y, Z, TANGLE*1 
This defines an angle to the program. Currently this information
is used only by the 
XCORrelate command. See command LOCRotate for more information.

LOCA su (RLCASU(i), i=1, 3) 10.0, 20.0, 30.0
This command instructs the program to explore the symmetry of the locked 
self rotation function (QSELF should be true).
The program first updates the local 
symmetry matrices based on the angles specified by RLCASU (similar to 
LOCUpdate),
it then carries out a grid search, using parameters defined by 
the SLIMits commands and the SANGle command, to find other sets of angles 
that are related to RLCASU by the symmetry. 
Internally, the command LOCAsu assigns a true value to 
the logical QLCASU, which defaults to false. Therefore, LOCAsu command must 
be supplied, even though you want the default angles for RLCASU (i.e., you 
can input a line that says ``LOCA'' only).

Symmetry in the locked cross rotation function can be determined 
analytically and is not supported as yet.

LOCF it ANGINC, ZANGLE 0.5, 2.5
This command performs an ordinary self rotation search for each of the 
local symmetry operators at a given orientation. The orientation can be 
derived by updating the standard orientation with the LOCUpdate 
command. The program searches ZANGLE degrees to either side of the known 
 and  positions, with ANGINC as the interval between grid 
points. Internally, the commands sets the logical variable QLCFIT to true, 
which defaults to false.

LOCR otate (ALCSHO(i), i=1, 3), TLCSHO*1 0
If QSELF is true, this command takes a set of angles and updates the 
local symmetry operation matrices 
based on the rotation matrix of the input angles. The angles can be either
Eulerian (TLCSHO=`E') or polar (TLCSHO=`P'). The default for TLCSHO is 
Eulerian. The convention of the angles
can be specified by using the EULEr or the POLAr commands (see II).
If reflection data for crystal A have also been supplied, the program will 
obtain the rotation function value at each of the updated positions.
The program also produces a stereographic representation of the 
set of updated local symmetry rotation axis.
A set of polar angles are extracted from each of the updated matrices using the 
convention specified by the POLAr command. The top half of the sphere (z 
 0 in the case of XYK polar angles, so , and y  
0 in the case of XZK polar angles) is projected. The PostScript
file is named STEREO.PS.

If QCROSS is true, the updated matrix is calculated as , 
where  is the matrix based on the input angles. A set of angles (polar if 
SANGLE=`P', Eulerian if SANGLE=`E') is 
extracted from the matrix. If reflection data has also been input for the A 
and the B crystals, the program will calculate the rotation function value 
corresponding to each of the updated matrices.

The maximum 
number of angles that can be input by this command is specified by 
the parameter MAXSHO.

MATR ix (AMTSHO(i), i=1, 3), TMTSHO*1 0
This commands takes a set of angles and outputs the corresponding rotation 
matrix. The variables AMTSHO and TMTSHO are similar to those for command 
LOCRotate. The program calculates the rotation matrix immediately after this
command is specified. Therefore, a temporary angle convention definition can be 
specified. If a pre-rotation has been applied (through the 
PRERotate command), the program will concatenate the two rotation matrices 
and extract a set of angles based on the new matrix.
The angle type is specified by SANGle, and the angle convention by EULEr or 
POLAr.
The program then applies the 
orthogonalization and deorthogonalization 
matrices. Therefore, the correct cell dimensions should 
be input to the program. 
If reflection data has been input, the program 
will output the contribution of the top 50 large terms to the final 
rotation function value. In this case, IGEVAL (see command GEVAluate) is 
set to 2. 
The maximum 
number of angles that can be input by this command is specified by 
the parameter MAXSHO.

SYMS how (ASYMSH(i), i=1, 3), TSYMSH*1 0
This commands takes a set of angles and outputs all the angles that are 
related to the input set by the symmetry of the ordinary rotation function.
The variables ASYMSH and TSYMSH are similar to those for command 
LOCRotate. The program calculates the rotation matrix immediately after this
command is specified. Therefore, a temporary angle convention definition can be 
specified. Calculations with both self and cross rotation functions are 
possible. The program will output the angles as Eulerian if SANGle is `E' 
or as polar if SANGle is `P'. The angle convention is given by EULEr or 
POLAr. Note that the calculations in this command ignore the local symmetry 
information. Use the command LOCAsu to explore the symmetry of the locked 
rotation function. The maximum 
number of angles that can be input by this command is specified by 
the parameter MAXSHO.




XII. ELECTRON DENSITY ROTATION TRANSLATION FUNCTION

RSRF  OPTION*1, X, Y, Z, CODE*1 none
This command specifies parameters for the real space (electron density) 
rotation function (see Appendix D for an introduction). This can be used to 
maximize the overlap of the electron density of two molecules related by 
local symmetry.
When OPTION=`R', X, Y, and Z will be interpreted as a set of rotation 
angles relating the molecule in the A crystal to that in the B crystal.
The rotation angle type (Eulerian or polar) will be taken from SANGLE
(command SANGle) and the angle convention will be taken from EULER or 
POLAR. When OPTION=`A', X, Y, and Z will be interpreted as the center of 
the molecule in the A crystal, in fractional coordinates. When OPTION=`B', 
X, Y, and Z will be taken as the center of the molecule in the B crystal.
Therefore, three separate RSRF commands will be needed to define the 
relationship between the molecule in the A crystal and that in the B 
crystal.
Set the CODE to `S' if a search is to be carried out for the corresponding 
OPTION. Note that only one OPTION can have the code `S' at one time.

The two molecules can reside in the same crystal (self-rotation 
calculation) or different crystals (cross-rotation calculation). The 
program will read in phase angles for each reflection. The search limits 
will need to be defined with the SLIMts commands. Note that in 
this case the limits defined are taken as the offsets from those values 
defined by the RSRF commands. The G function evaluation option (GEVAluate 
option) will be set to 2.

TFUN ction ITFUNC, (TFANGL(i), i=1, 6) 0
This command calls the translation function routines. The program has an 
internal logical variable called QTFUNC, which defaults to false. 
Specification of this command sets QTFUNC to true. Currently, three types of 
translation function are supported. 

The first, ITFUNC=1, searches for the 
translation element along the local symmetry axis, whose direction is given 
by the angles TFANGL(1), TFANGL(2), TFANGL(3). (The angle type is 
specified by the SANGLE variable 
and the angle convention is given by the POLAR or EULER variable). This 
function only works for local two-fold axes (M. G. Rossmann, D. M. Blow, M. 
M. Harding, E. Coller, Acta Cryst. 17, 338, (1964)).

The 
second, ITFUNC=2, searches for the location of the specified local symmetry 
axis in the unit cell
(see Appendix E). In this case, a set of phase angles must be present
in the reflection file. Similar to the case for ITFUNC=1, TFANGL(1), 
TFANGL(2), TFANGL(3) defines the orientation of the local symmetry axis as 
a set of polar or Eulerian angles. TFANGL(4) defines the translational 
element (in ) along this local symmetry axis. The program will break it 
down to three translation elements along the unit cell edges. Be sure to 
confirm that the signs of those elements are correct. If not, then the sign 
of TFANGL(4) may need to be reversed.

The third, ITFUNC=3, 
searches for the position that is related to an input point by the local 
symmetry axis
(see Appendix F). This also requires a set of phases to be input to the 
program. TFANGL(1), TFANGL(2), TFANGL(3) defines the orientation of the 
local symmetry axis. TFANGL(4), TFANGL(5), TFANGL(6) defines the input 
position, in fractional deorthogonalized units.

In all three cases, the program produces a formatted file 
called TFUNi.DAT, where i=1, 2, or 3,
which contains , , and 
values for a set of reflections. The maximum coefficient ()
has been scaled to 
a value of 1400.
These reflections can then be input to 
any Fourier summation program to obtain the translation function map (in 
space group P1). The 
maximum number of reflections that can be saved by the program is given by 
the parameter MAXREF.

The program will also try to carry out the Fourier transform 
directly. A warning will be issued if array limits are exceeded and the 
program can not perform the transform. 
A peak search is done through the 
transform map. 
The map can also be contoured (command CNTFile). 
In this case, the desired sectioning of the contour should be specified 
(command SECTion). 
The contour level (command CNTLevel) 
can be set at 500, 1000, 50, as the program will scale the 
maximum of the transform to 1000. The contour sections (command CNTSection) 
can be left as default, which will lead to the contouring of 5 sections 
containing the top peaks.
The map can be written to a file (command MAPFile), which 
can be used for re-contouring the map later (command PEAK).




XIII. CONTOUR PLOTS

CNTF ile CNTFIL*72 none
If a file name has been specified by this command, the program will produce 
contour plots for the rotation function map. Default is that the contour 
plot will not be created. 



If an one-dimensional search has been carried out (i.e., only one angle 
was allowed to vary), the rotation function values will be plotted as a 
function of the varying angle. In this case, the CNTLevel and CNTSection 
commands are ignored by the program.

If polar angles were used in the search, the contour plot will be done 
stereographically in sections of 
(with projection down Z if POLAR is XYK and 
down Y if POLAR is XZK). 
To make this 
projection consistent with the convention used in other plots (see command 
LOCRotate), the  angle needs to be kept between 0 and 180;
the  angle should lie between 0 and 180 if convention XZK is 
used, and between 180 and 360 if convention XYK is used
(see command SLIMits). Normally, stereographic projection will plot out the 
bottom half () of the sphere for XZK polar angles and the top half of 
the sphere () for XYK polar angles.
If a self rotation function is calculated in polar 
angles, the three coordinate axes in the stereographic contour plot 
will be labelled with the appropriate unit cell axes (, , or , 
which means the direction is roughly along the unit cell  axis).

If Eulerian angles were used in the search, the 
sectioning of the contour plot will be taken from the SECSHN parameter
(see command SECTion).

The contouring algorithm assumes continuity in the rotation function map 
values. This may not be true if a high RCUTLO value (see command RCUToff) 
has been selected during the calculation. In these cases, there might be 
some strange contour lines in the plot. To alleviate this problem, 
the RCUTLO value will need to be reduced.

The maximum number of points in each contour trace is given by the parameter 
MAXCVS. If the program is stopped because this limit is exceeded, either 
recompile the program with a larger MAXCVS or raise the starting contour 
level.

CNTL evel (CNTLVL(i), i=1, 3), LINTYP none
This command specifies the beginning, ending, and increment for the
contour level. LINTYP specifies the line type to be used for the contours 
in this level. This command can be repeated to obtain different contour 
levels. 
The contour levels can be specified as absolute 
values (with the maximum of the map scaled to 999) or in terms of the 
 value of the map. In the latter case, the beginning and ending 
contour levels must be specified as less than 10 and the increment must be 
less than 2. For example, specifying `CNTLevel 1 5 0.5' means the 
contouring should begin at 1 above the map average and end at 
5 above the map average, with increment of 0.5.
The maximum number of contour levels that can be specified is given 
by the MAXLVL parameter. 

Currently 7 different line types are supported.
LINTYP=1 is a solid line 0.1 point wide (there are 72 points to an inch). 
LINTYP=2 is a solid line 0.5 point wide. LINTYP=3 is a solid line 1 point 
wide. LINTYP=4 is a dashed line (2 on 2 off)
0.1 point wide. LINTYP=5 is a dashed line 
0.5 point wide. LINTYP=6 is a dashed line (4 on 1 off)
0.1 point wide. LINTYP=7 is a 
dashed line 0.5 point wide.

Since it is difficult to predict the optimal contour levels beforehand, it 
is suggested that the rotation function values be written out with the MAPFile 
command. Then contour level(s) can be chosen and the rotation function map 
values can be read in with the command PEAK.

CNTS ection ICNTSB, ICNTSE 0, 0
This specifies the section range for which the contour plot should be 
created. The numbering of the sections starts with the first section being 
number 1. The default is that all the sections will be plotted if there are 
5 or less sections in the map. If there are more than 5 sections, the 
program will plot a maximum of 5 sections containing the top peaks in 
the map. If no peaks are found in the map, the first 5 sections of the map 
will be plotted.




XIV. STORAGE LIMITS

The storage limits for different parameters are defined in a
PARAMETER statement in the Fortran INCLUDE file GLRF.CMN.
The program will need to be recompiled if any of these limits is exceeded.
Especially, the parameters MAXH, MAXK, and MAXL should be adjusted to best 
match the cell parameters under study. The following table lists a set of 
reasonable values for the parameters. The actual values used are reported 
at the end of the output file.


# & # 
height 1.0pt
Parameter & Limit 
height 0.2pt
MAXBIG & 80000 
MAXBOX & 5 
MAXGRD & 1000000 
MAXH & 75 
MAXK & 75 
MAXL & 75 
MAXLAX & 10 
MAXLOC & 100 
MAXPKS & 1000 
MAXREF & 100000 
MAXSHL & 10 
MAXSHO & 10 
MAXATM & 12000 
MAXLVL & 5 
MAXLIN & 7 
height 1pt