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.
Module | Variables |
---|---|
DEFINITIONS | DP |
DIAGONALIZATION | SYMMETRIC_UPPER |
IO_UNITS | OUTPUT |
LINEAR_ALGEBRA | CROSS_PRODUCT, DETERMINANT |
TRANSFORMATION | CENTER, ROTATE, TRANSLATE, TRANSLATE_TO_CENTER |
None.
There are three public subroutines in this module.
Subroutine | Purpose |
---|---|
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. |
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. |
Logical | In | Yes | A print flag. |
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. |
Logical | In | Yes | A print flag. |
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. |
Logical | In | Yes | A print flag. |
Stable.