molecule_t Derived Type

type, public :: molecule_t

Single molecule definition with structure, geometry, fragments, and connectivity


Inherits

type~~molecule_t~~InheritsGraph type~molecule_t molecule_t type~bond_t bond_t type~molecule_t->type~bond_t bonds type~geometry_type geometry_type type~molecule_t->type~geometry_type geometry type~input_fragment_t input_fragment_t type~molecule_t->type~input_fragment_t fragments

Inherited by

type~~molecule_t~~InheritedByGraph type~molecule_t molecule_t type~mqc_config_t mqc_config_t type~mqc_config_t->type~molecule_t molecules

Components

Type Visibility Attributes Name Initial
type(bond_t), public, allocatable :: bonds(:)
integer, public :: charge = 0
type(input_fragment_t), public, allocatable :: fragments(:)
type(geometry_type), public :: geometry
integer, public :: multiplicity = 1
character(len=:), public, allocatable :: name

Optional molecule name

integer, public :: nbonds = 0
integer, public :: nbroken = 0
integer, public :: nfrag = 0

Type-Bound Procedures

procedure, public :: destroy => molecule_destroy

  • private subroutine molecule_destroy(this)

    Clean up allocated memory in molecule_t

    Arguments

    Type IntentOptional Attributes Name
    class(molecule_t), intent(inout) :: this

Source Code

   type :: molecule_t
      !! Single molecule definition with structure, geometry, fragments, and connectivity
      character(len=:), allocatable :: name  !! Optional molecule name

      ! Structure information
      integer :: charge = 0
      integer :: multiplicity = 1

      ! Geometry
      type(geometry_type) :: geometry

      ! Fragments
      integer :: nfrag = 0
      type(input_fragment_t), allocatable :: fragments(:)

      ! Connectivity
      integer :: nbonds = 0
      integer :: nbroken = 0
      type(bond_t), allocatable :: bonds(:)

   contains
      procedure :: destroy => molecule_destroy
   end type molecule_t