Documentation for module molsym

Molecular symmetry routines

source: molsym.F
Loading...

public Types:

molsym_type
Container for information about molecular symmetry

public Subroutines/Functions:

Main program for symmetry analysis.
Print the output of the symmetry analysis.
SUBROUTINE
release_molsym (sym)
release an object of molsym type

public Types:

TYPE :: molsym_type

Container for information about molecular symmetry


CHARACTER(4)
:: point_group_symbol Point group symbol.
INTEGER
:: point_group_order Group order.
INTEGER
:: ncn Degree of the C axis with highest degree.
INTEGER
:: ndod Number of substituted dodecahedral angles.
INTEGER
:: ngroup Number of groups of equivalent atoms.
INTEGER
:: nico Number of substituted icosahedral angles.
INTEGER
:: nlin Number of substituted angles of 180 degrees.
INTEGER
:: nsig Number of mirror planes.
INTEGER
:: nsn Degree of the S axis with highest degree.
INTEGER
:: ntet Number of substituted tetrahedral angles.
LOGICAL
:: cubic .TRUE., if a cubic point group was found (T,Th,Td,O,Oh,I,Ih).
LOGICAL
:: dgroup .TRUE., if a point group of D symmetry was found (Dn,Dnh,Dnd)
LOGICAL
:: igroup .TRUE., if a point group of icosahedral symmetry was found (I,Ih).
LOGICAL
:: invers .TRUE., if the molecule has a center of inversion.
LOGICAL
:: linear .TRUE., if the molecule is linear.
LOGICAL
:: maxis .TRUE., if the molecule has a main axis.
LOGICAL
:: ogroup .TRUE., if a point group of octahedral symmetry was found (O,Oh)
LOGICAL
:: sgroup .TRUE., if a point group of S symmetry was found.
LOGICAL
:: sigmad .TRUE., if there is a sigma_d mirror plane.
LOGICAL
:: sigmah .TRUE., if there is a sigma_h mirror plane.
LOGICAL
:: sigmav .TRUE., if there is a sigma_v mirror plane.
LOGICAL
:: tgroup .TRUE., if a point group of tetrahedral symmetry was found (T,Th,Td).
REAL(dp)
:: eps_geo Accuracy requested for analysis
REAL(dp),
DIMENSION(3) :: center_of_mass Shift vector for the center of mass.
REAL(dp),
DIMENSION(3) :: tenval Eigenvalues of the molecular tensor of inertia.
REAL(dp),
DIMENSION(3) :: x_axis ...
REAL(dp),
DIMENSION(3) :: y_axis ...
REAL(dp),
DIMENSION(3) :: z_axis ...
REAL(dp),
DIMENSION(:), POINTER :: ain Atomic identification numbers (symmetry code).
REAL(dp),
DIMENSION(:), POINTER :: aw Atomic weights for the symmetry analysis.
REAL(dp),
DIMENSION(3,3) :: inptostd Transformation matrix for input to standard orientation.
REAL(dp),
DIMENSION(3,3) :: rotmat Rotation matrix.
REAL(dp),
DIMENSION(3,3) :: tenmat Molecular tensor of inertia.
REAL(dp),
DIMENSION(3,3) :: tenvec Eigenvectors of the molecular tensor of inertia.
REAL(dp),
DIMENSION(3,MAXSIG) :: sig List of mirror planes (sig(:,i) => x,y,z of the ith mirror plane).
REAL(dp),
DIMENSION(3,MAXSEC,2:MAXCN) :: sec List of C axes (sec(:,i,j) => x,y,z of the ith j-fold C axis).
REAL(dp),
DIMENSION(3,MAXSES,2:MAXSN) :: ses List of S axes (ses(:,i,j) => x,y,z of the ith j-fold S axis).
INTEGER,
DIMENSION(MAXCN) :: nsec Number of C axes.
INTEGER,
DIMENSION(MAXSN) :: nses Number of S axes.
INTEGER,
DIMENSION(:), POINTER :: group_of Group of equivalent atom.
INTEGER,
DIMENSION(:), POINTER :: llequatom Lower limit of a group in symequ_list.
INTEGER,
DIMENSION(:), POINTER :: nequatom Number of equivalent atoms.
INTEGER,
DIMENSION(:), POINTER :: symequ_list List of all atoms ordered in groups of equivalent atoms.
INTEGER,
DIMENSION(:), POINTER :: ulequatom Upper limit of a group in symequ_list.

SUBROUTINEmolecular_symmetry(sym, eps_geo, coord, atype, weight)

Main program for symmetry analysis.

Arguments:
POINTER
:: sym ...
REAL(dp),
INTENT(in)
:: eps_geo ...
REAL(dp),
INTENT(inout)
:: coord(:,:) ...
INTEGER,
INTENT(in)
:: atype(:) ...
REAL(dp),
INTENT(in)
:: weight(:) ...

SUBROUTINErelease_molsym(sym)

release an object of molsym type

Arguments:
POINTER
:: sym ...