SUPERIMPOSE


Function

Superimpose contains procedures for manipulating two sets of coordinates.

All the manipulations in this module are fully discussed in chapter 3 of the book A Practical Introduction to the Simulation of Molecular Systems.

All the procedures in this module have the essential arguments SET1, SET2 and the optional arguments WEIGHTS and PRINT. SET1 and SET2 are coordinate arrays of the form SET1(1:3,:) and SET2(1:3,1:SIZE(SET1,2)) while WEIGHTS is a real array which, if present,must be of the form WEIGHTS(1:SIZE(SET1,2)). If WEIGHTS is present, the values in WEIGHTS are used to weight the coordinates in both arrays SET1 and SET2. If WEIGHTS is absent, equal weights are used for all the coordinates. PRINT is a logical which determines how much information is printed out by the procedure. If PRINT is absent or present with the value .TRUE. some information is printed.

Dependencies

Module Variables
DEFINITIONS DP
DIAGONALIZATION SYMMETRIC_UPPER
IO_UNITS OUTPUT
LINEAR_ALGEBRA CROSS_PRODUCT, DETERMINANT
TRANSFORMATION CENTER, ROTATE, TRANSLATE, TRANSLATE_TO_CENTER


Public Variables

None.

Public Procedures

There are three public subroutines in this module.

SubroutinePurpose
RMS_DEVIATION Calculate the RMS deviation between two sets of coordinates.
SUPERIMPOSE_KABSCH Superimpose two sets of coordinates using Kabsch's algorithm.
SUPERIMPOSE_QUATERNION Superimpose two sets of coordinates using a quaternion algorithm.


RMS_DEVIATION

Argument Type Intent Optional Purpose
SET1 Real(:,:) In No The first set of coordinates.
SET2 Real(:,:) In No The second set of coordinates.
WEIGHTS Real(:) In Yes Atom weights.
RMS Real Out Yes The RMS coordinate deviation.
PRINT Logical In Yes A print flag.




SUPERIMPOSE_KABSCH

Argument Type Intent Optional Purpose
SET1 Real(:,:) In No The first set of coordinates.
SET2 Real(:,:) InOut No The second set of coordinates.
WEIGHTS Real(:) In Yes Atom weights.
PRINT Logical In Yes A print flag.




SUPERIMPOSE_QUATERNION

Argument Type Intent Optional Purpose
SET1 Real(:,:) In No The first set of coordinates.
SET2 Real(:,:) InOut No The second set of coordinates.
WEIGHTS Real(:) In Yes Atom weights.
PRINT Logical In Yes A print flag.




Stability

Stable.



Back to the DYNAMO Home-Page.