| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | num_atom_types | = | 0 |
Number of atom_types |
|
| character(len=8), | public, | dimension(:), allocatable | :: | atom_names |
(num_atom_types,) array. Name of atoms of each type. |
||
| integer, | public, | dimension(:), allocatable | :: | atom_styles |
(num_atom_types,) array. Style of atoms of each type. |
||
| real(kind=rp), | public, | dimension(:), allocatable | :: | atom_mass |
(num_atom_types,) array. Mass of atoms of each type. |
||
| integer, | public | :: | num_atoms | = | 0 |
Number of atoms |
|
| integer, | public, | dimension(:), allocatable | :: | atoms |
(num_atoms,) array. For atom i, its type at = atoms(i), with style atom_styles(at), name atom_names(at), mass atom_mass(at), charge charge(i), position coordinates(:,i), velocity velocities(:,i), orientation (if the style requires) orientations(:,i). The force acting on atom i is forces(:,i). |
||
| real(kind=rp), | public, | dimension(:), allocatable | :: | charge |
(num_atoms,) array. |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | coordinates |
(3, num_atoms) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | forces |
(3, num_atoms) array |
||
| integer, | public | :: | num_bond_types | = | 0 |
Number of bond_types |
|
| integer, | public, | dimension(:), allocatable | :: | bond_styles |
(num_bond_types,) array. |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | bond_params |
(mxparam,num_bond_types) array. |
||
| integer, | public | :: | num_bonds | = | 0 |
Total number of bonds. |
|
| integer, | public, | dimension(:,:), allocatable | :: | bonds |
(3, num_bonds) array. Bond i is of type bt = bonds(1,i), directed from atom bonds(2,i) to bonds(3,i). Its style is bond_styles(bt) with parameters bond_params(:,bt). |
||
| integer, | public | :: | num_angle_types | = | 0 |
Number of angle_types |
|
| integer, | public, | dimension(:), allocatable | :: | angle_styles |
(num_angle_types,) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | angle_params |
(mxparam, num_angle_types) array |
||
| integer, | public | :: | num_angles | = | 0 |
Number of angles |
|
| integer, | public, | dimension(:,:), allocatable | :: | angles |
(4, num_angles) array. Angle i is of type ant = angles(1,i), incident to atoms angles(2,i), angles(3,i), and angles(4,i). Its style is angle_styles(ant) with parameters angle_params(:,ant). |
||
| integer, | public | :: | num_dihedral_types | = | 0 |
Number of dihedral_types |
|
| integer, | public, | dimension(:), allocatable | :: | dihedral_styles |
(num_dihedral_types,) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | dihedral_params |
(mxparam, num_dihedral_types) array |
||
| integer, | public | :: | num_dihedrals | = | 0 |
Number of dihedrals |
|
| integer, | public, | dimension(:,:), allocatable | :: | dihedrals |
(5, num_dihedrals) array. Dihedral i is of type dt = dihedrals(1,i), incident to atoms dihedrals(2,i), dihedrals(3,i), dihedrals(4,i), and dihedrals(5,i). Its style is dihedral_styles(dt) with parameters dihedral_params(:,dt). |
||
| integer, | public | :: | num_branches | = | 0 |
Total number of branches (including the backbone) |
|
| integer, | public, | dimension(:,:), allocatable | :: | branches |
(3,num_branches) array. Branch i is tethered to atom branches(1,i), contains branches(2,i) atoms, with the beginning atom index branches(3,i). |
||
| integer, | public | :: | num_molecule_types | = | 0 |
Number of molecule_types |
|
| character(len=8), | public, | dimension(:), allocatable | :: | molecule_names |
(num_molecule_types,) array |
||
| integer, | public, | dimension(:), allocatable | :: | molecule_pop |
(num_molecule_types,) array |
||
| integer, | public | :: | num_molecules | = | 0 |
Number of molecules |
|
| integer, | public, | dimension(:,:), allocatable | :: | molecules |
(9,num_molecules) array. For molecule i, its type mt = molecules(1,i), containing molecules(2,i) atoms with beginning index molecules(3,i), molecules(4,i) bonds with beginning index molecules(5,i), molecules(6,i) angles with beginning index molecules(7,i), and molecules(8,i) dihedrals with beginning index molecules(9,i). |
||
| real(kind=rp), | public, | dimension(3) | :: | molecule_com | = | 0.0_rp |
Center of mass of the molecule. This is used only when imcon == 0, i.e. for a single molecule without periodic boundaries. |
| integer, | public | :: | num_tether_types | = | 0 |
Number of tether_types |
|
| integer, | public, | dimension(:), allocatable | :: | tether_styles |
(num_tether_types,) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | tether_params |
(mxparam, num_tether_types) array |
||
| integer, | public | :: | num_tethers | = | 0 |
Number of tethers |
|
| integer, | public, | dimension(:,:), allocatable | :: | tethers |
(2, num_tethers) array. Tether i is of type tt = tethers(1,i), tethering atom tethers(2,i) to a point tether_points(:,i). Its style is tether_styles(tt) with parameters tether_params(:,tt). |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | tether_points |
(3, num_tethers) array |
||
| integer, | public | :: | num_vdw_types | = | 0 |
Number of vdw_types |
|
| integer, | public, | dimension(:), allocatable | :: | vdw_styles |
(num_vdw_types,) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | vdw_params |
(mxparam, num_vdw_types) array |
||
| integer, | public, | dimension(:,:), allocatable | :: | vdw_pairs |
(2, num_vdw_types) array. Stores atom type of interacting pairs, such that at_i >= at_j. |
||
| integer, | public | :: | num_externals | = | 0 |
Number of external fields |
|
| integer, | public, | dimension(:), allocatable | :: | external_styles |
(num_external,) array |
||
| real(kind=rp), | public, | dimension(:,:), allocatable | :: | external_params |
(mxparam, num_external) array |
||
| integer, | public | :: | flow_style | = | 0 | ||
| real(kind=rp), | public, | dimension(:), allocatable | :: | flow_params |
(mxparam,) array |
type atmcfg_t !Particle configuration: Atoms integer :: num_atom_types = 0 !! Number of *atom_type*s character(len=8), dimension(:), allocatable :: atom_names !! (*num_atom_types*,) array. Name of atoms of each type. integer, dimension(:), allocatable :: atom_styles !! (*num_atom_types*,) array. Style of atoms of each type. real(rp), dimension(:), allocatable :: atom_mass !! (*num_atom_types*,) array. Mass of atoms of each type. integer :: num_atoms = 0 !! Number of atoms integer , dimension(:), allocatable:: atoms !! (*num_atoms*,) array. !! !! For atom *i*, its type *at = atoms(i)*, with style !! *atom_styles(at)*, name *atom_names(at)*, mass *atom_mass(at)*, charge !! *charge(i)*, position *coordinates(:,i)*, velocity *velocities(:,i)*, !! orientation (if the style requires) *orientations(:,i)*. The force !! acting on atom *i* is *forces(:,i)*. real(rp), dimension(:), allocatable :: charge !! (*num_atoms*,) array. real(rp), dimension(:,:), allocatable :: coordinates !! (3, *num_atoms*) array real(rp), dimension(:,:), allocatable :: forces !! (3, *num_atoms*) array !Particle configuration: Bonds integer :: num_bond_types = 0 !! Number of *bond_type*s integer, dimension(:), allocatable :: bond_styles !! (*num_bond_types*,) array. real(rp), dimension(:,:), allocatable :: bond_params !! (*mxparam*,*num_bond_types*) array. integer :: num_bonds = 0 !! Total number of bonds. integer, dimension(:,:), allocatable :: bonds !! (3, *num_bonds*) array. Bond *i* is of type *bt = bonds(1,i)*, directed from !! atom *bonds(2,i)* to *bonds(3,i)*. Its style is *bond_styles(bt)* with !! parameters *bond_params(:,bt)*. !Particle configuration: Angles integer :: num_angle_types = 0 !! Number of *angle_type*s integer, dimension(:), allocatable :: angle_styles !! (*num_angle_types*,) array real(rp), dimension(:,:), allocatable :: angle_params !! (*mxparam*, *num_angle_types*) array integer :: num_angles = 0 !! Number of angles integer, dimension(:,:), allocatable :: angles !! (4, *num_angles*) array. Angle *i* is of type *ant = angles(1,i)*, incident !! to atoms *angles(2,i)*, *angles(3,i)*, and *angles(4,i)*. Its style is !! *angle_styles(ant)* with parameters *angle_params(:,ant)*. !Particle configuration: Dihedrals integer :: num_dihedral_types = 0 !! Number of *dihedral_type*s integer, dimension(:), allocatable :: dihedral_styles !! (*num_dihedral_types*,) array real(rp), dimension(:,:), allocatable :: dihedral_params !! (*mxparam*, *num_dihedral_types*) array integer :: num_dihedrals = 0 !! Number of dihedrals integer, dimension(:,:), allocatable :: dihedrals !! (5, *num_dihedrals*) array. Dihedral *i* is of type *dt = dihedrals(1,i)*, incident !! to atoms *dihedrals(2,i)*, *dihedrals(3,i)*, *dihedrals(4,i)*, and *dihedrals(5,i)*. !! Its style is *dihedral_styles(dt)* with parameters *dihedral_params(:,dt)*. !Particle configuration: Branches integer :: num_branches = 0 !! Total number of branches (including the backbone) integer , dimension(:,:), allocatable:: branches !! (3,*num_branches*) array. Branch *i* is tethered to atom *branches(1,i)*, !! contains *branches(2,i)* atoms, with the beginning atom index *branches(3,i)*. !Particle configuration: Molecules integer :: num_molecule_types = 0 !! Number of *molecule_type*s character(len=8), dimension(:), allocatable :: molecule_names !! (*num_molecule_types*,) array integer, dimension(:), allocatable :: molecule_pop !! (*num_molecule_types*,) array integer :: num_molecules = 0 !! Number of molecules integer, dimension(:,:), allocatable :: molecules !! (9,*num_molecules*) array. For molecule *i*, its type *mt = molecules(1,i)*, !! containing *molecules(2,i)* atoms with beginning index *molecules(3,i)*, !! *molecules(4,i)* bonds with beginning index *molecules(5,i)*, !! *molecules(6,i)* angles with beginning index *molecules(7,i)*, and !! *molecules(8,i)* dihedrals with beginning index *molecules(9,i)*. real(rp), dimension(3) :: molecule_com = 0.0_rp !! Center of mass of the molecule. This is used only when imcon == 0, i.e. !! for a single molecule without periodic boundaries. !Particle configuration: Tethers integer :: num_tether_types = 0 !! Number of *tether_type*s integer, dimension(:), allocatable :: tether_styles !! (*num_tether_types*,) array real(rp), dimension(:,:), allocatable :: tether_params !! (*mxparam*, *num_tether_types*) array integer :: num_tethers = 0 !! Number of tethers integer, dimension(:,:), allocatable :: tethers !! (2, *num_tethers*) array. Tether *i* is of type *tt = tethers(1,i)*, tethering !! atom *tethers(2,i)* to a point *tether_points(:,i)*. !! Its style is *tether_styles(tt)* with parameters *tether_params(:,tt)*. real(rp), dimension(:,:), allocatable :: tether_points !! (3, *num_tethers*) array !Particle configuration: VDW (pair) interactions integer :: num_vdw_types = 0 !! Number of *vdw_type*s integer, dimension(:), allocatable :: vdw_styles !! (*num_vdw_types*,) array real(rp), dimension(:,:), allocatable :: vdw_params !! (*mxparam*, *num_vdw_types*) array integer, dimension(:,:), allocatable :: vdw_pairs !! (2, *num_vdw_types*) array. Stores atom type of interacting pairs, such !! that at_i >= at_j. !Particle configuration: External force field integer :: num_externals = 0 !! Number of external fields integer, dimension(:), allocatable :: external_styles !! (*num_external*,) array real(rp), dimension(:,:), allocatable :: external_params !! (*mxparam*, *num_external*) array !Particle configuration: Flow field integer :: flow_style = 0 real(rp), dimension(:), allocatable :: flow_params !! (*mxparam*,) array end type atmcfg_t