mctc_io_structure Module

Basic structure representation of the system of interest



Interfaces

public interface new

  • public subroutine new_structure(self, num, sym, xyz, charge, uhf, lattice, periodic, info, bond)

    Constructor for structure representations

    Arguments

    Type IntentOptional Attributes Name
    type(structure_type), intent(out) :: self

    Instance of the structure representation

    integer, intent(in) :: num(:)

    Atomic numbers

    character(len=*), intent(in) :: sym(:)

    Element symbols

    real(kind=wp), intent(in) :: xyz(:,:)

    Cartesian coordinates

    real(kind=wp), intent(in), optional :: charge

    Total charge

    integer, intent(in), optional :: uhf

    Number of unpaired electrons

    real(kind=wp), intent(in), optional :: lattice(:,:)

    Lattice parameters

    logical, intent(in), optional :: periodic(:)

    Periodic directions

    type(structure_info), intent(in), optional :: info

    Vendor specific structure information

    integer, intent(in), optional :: bond(:,:)

    Bond topology of the system

  • private subroutine new_structure_num(self, num, xyz, charge, uhf, lattice, periodic, info, bond)

    Simplified constructor for structure representations

    Arguments

    Type IntentOptional Attributes Name
    type(structure_type), intent(out) :: self

    Instance of the structure representation

    integer, intent(in) :: num(:)

    Atomic numbers

    real(kind=wp), intent(in) :: xyz(:,:)

    Cartesian coordinates

    real(kind=wp), intent(in), optional :: charge

    Total charge

    integer, intent(in), optional :: uhf

    Number of unpaired electrons

    real(kind=wp), intent(in), optional :: lattice(:,:)

    Lattice parameters

    logical, intent(in), optional :: periodic(:)

    Periodic directions

    type(structure_info), intent(in), optional :: info

    Vendor specific structure information

    integer, intent(in), optional :: bond(:,:)

    Bond topology of the system

  • private subroutine new_structure_sym(self, sym, xyz, charge, uhf, lattice, periodic, info, bond)

    Simplified constructor for structure representations

    Arguments

    Type IntentOptional Attributes Name
    type(structure_type), intent(out) :: self

    Instance of the structure representation

    character(len=*), intent(in) :: sym(:)

    Element symbols

    real(kind=wp), intent(in) :: xyz(:,:)

    Cartesian coordinates

    real(kind=wp), intent(in), optional :: charge

    Total charge

    integer, intent(in), optional :: uhf

    Number of unpaired electrons

    real(kind=wp), intent(in), optional :: lattice(:,:)

    Lattice parameters

    logical, intent(in), optional :: periodic(:)

    Periodic directions

    type(structure_info), intent(in), optional :: info

    Vendor specific structure information

    integer, intent(in), optional :: bond(:,:)

    Bond topology of the system


Derived Types

type, public ::  structure_type

Structure representation

Components

Type Visibility Attributes Name Initial
integer, public, allocatable :: bond(:,:)

Bond indices

real(kind=wp), public :: charge = 0.0_wp

Total charge

character(len=:), public, allocatable :: comment

Comment, name or identifier for this structure

integer, public, allocatable :: id(:)

Species identifier

type(structure_info), public :: info = structure_info()

Vendor specific structure annotations

real(kind=wp), public, allocatable :: lattice(:,:)

Lattice parameters

integer, public :: nat = 0

Number of atoms

integer, public :: nbd = 0

Number of bonds

integer, public :: nid = 0

Number of unique species

integer, public, allocatable :: num(:)

Atomic number for each species

type(pdb_data), public, allocatable :: pdb(:)

PDB atomic data annotations

logical, public, allocatable :: periodic(:)

Periodic directions

type(sdf_data), public, allocatable :: sdf(:)

SDF atomic data annotations

character(len=symbol_length), public, allocatable :: sym(:)

Element symbol for each species

integer, public :: uhf = 0

Number of unpaired electrons

real(kind=wp), public, allocatable :: xyz(:,:)

Cartesian coordinates, in Bohr


Subroutines

public subroutine new_structure(self, num, sym, xyz, charge, uhf, lattice, periodic, info, bond)

Constructor for structure representations

Arguments

Type IntentOptional Attributes Name
type(structure_type), intent(out) :: self

Instance of the structure representation

integer, intent(in) :: num(:)

Atomic numbers

character(len=*), intent(in) :: sym(:)

Element symbols

real(kind=wp), intent(in) :: xyz(:,:)

Cartesian coordinates

real(kind=wp), intent(in), optional :: charge

Total charge

integer, intent(in), optional :: uhf

Number of unpaired electrons

real(kind=wp), intent(in), optional :: lattice(:,:)

Lattice parameters

logical, intent(in), optional :: periodic(:)

Periodic directions

type(structure_info), intent(in), optional :: info

Vendor specific structure information

integer, intent(in), optional :: bond(:,:)

Bond topology of the system