ROTMAP

ROTMAP applies a rotation/translation to a map from one crystal lattice to another. The later one can be either the same as or different from the first one.

To report bugs, please contact

Cai X.-J. Zhang at cai-zhang@omrf.uokhsc.edu

Input file

Ten Eyck format map files. The map should be sectioned along z direction.

Output file

A Ten Eyck format map file. The map will be sectioned along z direction.

Commands

ROTMAP uses key-word leading, free format input cards. A key-word can be abbreviated as long as there is no ambiguity caused.

In the following, the commands marked with a star (*) are mandatary to the program, and those without star are optional. In a command sequence, the order of commands will affect the result.

CELL_IN*, CELL_OUT*, CUTOFF, DOIT, GRID_IN, GRID_OUT*, INCLUDE, LAYOUT, MAP_IN*, MATRIX, MOVE, OVERWRITE, PUNCH*, SYSTEM and !comment.

CELL_IN a, b, c, alpha, beta, gamma, convention_number

CELL_IN inputs the cell parameters for the input map. The convention used to define the orthogonal (xyz) coordinate system relative to the crystal (abc) coordinate system is specified by an integer code from 1 to 8. The same code is used in programs EDPDB, ROTFUN and FASTRAN. The convention codes are as follows.
	1: x//a*, y//b, z//(a* X b) -- TNT convention
	2: x//(b X c*), y//b, z//c*
	3: x//(b* X c), y//b*, z//c
	4: x//a*, y//(c X a*), z//c
	5: x//a, y//(c* X a), z//c*
	6: x//a, y//b*, z//(a X b*) -- PDB convention
	7: x//(a-b), y//(a+b-2c), z//(a+b+c) -- only for R+ lattice
	8: x//(a-c), y//(2b-a-c), z//(a+b+c) -- only for R- lattice
CELL_OUT a, b, c, alpha, beta, gamma, convention_number
CELL_OUT inputs the cell parameters for the output map. Also see CELL_IN card.
CUTOFF cutoff
CUTOFF defines the low value cutoff for the map to be interpreted. Any grid point which has a absolute value smaller than the cutoff will be set to 0.0 when the map is read in. Therefore this card should be ahead of the MAP_IN card which caused the map to be input. The default cutoff is 0.0.
DOIT [ scale,{MAX, SUM}, {1x1x1,2x2x2,3x3x3}, matrix_file_name]
DOIT accumulates the current output map to a buffer, after scaled. The option MAX will merge the maps by keeping the one with larger absolute value. The option SUM will do simply summation. The defaults are 1.0 and MAX. If a matrix file name is given, the file will contain the current orthogonal to orthogonal transformation matrix. 1x1x1 will activate the mode which uses the value of the closest lattice point as the output. This is useful when applying a crystallographic symmetry operator to a map and output the map in the same gridding. 2x2x2 activate the 2x2x2 linear interpellation. And 3x3x3 activate the 3x3x3 quadratic interpellation. The default interpellation is the one defined in the previous DOIT card, which is initially set to 2x2x2.
GRID_IN x_grid, y_grid, z_grid
GRID_IN defines the gridding of the input map file. This card, if uses, should be ahead of the MAP_IN card. The defaults are the gridding information in the modified Ten Eyck map file (cf. TNT manual).
GRID_OUT x_grid, y_grid, z_grid
GRID_OUT defines the gridding of the output map file. (The maximum dimension of the map is defined in the file rotmap.inc to be included for compiling).
INCLUDE file_name
INCLUDE defines an input parameter file, which may contain any of the input cards, including INCLUDE card itself. For example, the symmetry operators can be input from a separate file for convenience.
LAYOUT x0, x1, y0, y1, z0, z1
LAYOUT_OUT defines the layout of the output map with the gridding defined in GRID card. The default is (0, x_grid-1, 0, y_grid-1, 0, z_grid-1). Note that LAYOUT_IN is always read in from the input Ten Eyck map.
MAP_IN filename
MAP_IN defines the name of the input map file. It activates reading the input file with the current cutoff value etc.
MATRIX file_name
This command reads a matrix file. Each MATRIX command accumulates a rotation-translation operation on the previous one which starts from the unitary matrix. This accumulated matrix will be applied to the input map as soon as a DOIT card is issued. And then the matrix is initialized to a unitary matrix. The input order of the matrix elements is r11, r12, r13, r21, r22, r23, r31, r32, r33, t1, t2 and t3, where 'r' stands for rotation and 't' stands for translation. The rotation-translation operator is related to the orthogonal xyz coordinate system defined with the CELL_IN* card.
MOVE x_old, y_old, z_old, x_new, y_new, z_new
MOVE command forces the translation operation in a way that will move (x_old,y_old, z_old) grid point in the old map to (x_new, y_new, z_new) grid point in the new map. The rotation part will be that from the current rotation-translation matrix.
OVERWRITE
This command overwrites the input map buffer (not the input map file) with the current output map.
PUNCH filename
PUNCH defines the name of the output map file, and performs the output. After each PUNCH command, the buffer for the output map is initiallized to zero.
SYSTEM DCL/VMS command
SYSTEM spawns a sub process in the DCL/VMS enviroment.

!comment

Any input line starting with a semicolon (;) or an exclamation mark (!) will be ignored.

Examples

The following is an example VMS command file.
	$ RUN ROTMAP_EXE:ROTMAP
	! an example 
	cutoff     0.001
	cell_in    300. 300. 400.  90 90 90 1
	map_in     input.map

	matrix     rtn.dat

	cell_out   300. 300. 400.  90 90 90 1
	grid_out   108 108 160
	doit       1 max 3x3x3

	punch      output.map
	$

Copyright 1995, Cai X.-J. Zhang, All Right Reserved.