m_globals Module


Uses

  • module~~m_globals~~UsesGraph module~m_globals m_globals module~m_ia_types m_ia_types module~m_globals->module~m_ia_types module~m_precision m_precision module~m_globals->module~m_precision module~m_trajectory m_trajectory module~m_globals->module~m_trajectory module~m_ia_types->module~m_precision iso_fortran_env iso_fortran_env module~m_precision->iso_fortran_env module~m_trajectory->module~m_precision

Used by

  • module~~m_globals~~UsedByGraph module~m_globals m_globals module~m_config_io m_config_io module~m_config_io->module~m_globals module~m_control_io m_control_io module~m_control_io->module~m_globals module~m_interaction m_interaction module~m_interaction->module~m_globals module~m_nbr_lists m_nbr_lists module~m_interaction->module~m_nbr_lists module~m_mc_moves m_mc_moves module~m_mc_moves->module~m_globals module~m_mc_moves->module~m_interaction module~m_mc_moves->module~m_nbr_lists module~m_mc_solver m_mc_solver module~m_mc_solver->module~m_globals module~m_mc_solver->module~m_config_io module~m_mc_solver->module~m_interaction module~m_mc_solver->module~m_mc_moves module~m_mc_solver->module~m_nbr_lists module~m_stats_io m_stats_io module~m_mc_solver->module~m_stats_io module~m_nbr_lists->module~m_globals module~m_setup m_setup module~m_setup->module~m_globals module~m_setup->module~m_config_io module~m_setup->module~m_interaction module~m_setup->module~m_mc_solver module~m_setup->module~m_stats_io module~m_stats_io->module~m_globals program~main main program~main->module~m_globals program~main->module~m_control_io program~main->module~m_mc_solver program~main->module~m_setup

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: mxrdln = 1024

Maximum length of character string for input line buffer.

integer, public, parameter :: mx_mcmtyp = 5

Maximum number of MC move types. Type 1: backbone pivot, type 2: side chain crankshaft, type 3: side chain pivot, type 4: backbone restricted pivot, type 5: displacement

real(kind=rp), public, dimension(3) :: smbx_a

Lattice vector of simulation box along x-axis.

real(kind=rp), public, dimension(3) :: smbx_b

Lattice vector of simulation box along y-axis.

real(kind=rp), public, dimension(3) :: smbx_c

Lattice vector of simulation box along z-axis.

integer, public :: imcon = 0

Flag specifying boundary condition on the simulation box.

integer, public :: num_atom_types = 0

Number of atom_types

type(atm_specs_t), public, dimension(:), allocatable :: atom_specs

(num_atom_types,) array.

integer, public, dimension(:), allocatable :: atom_pop

(num_atom_types,) array. Population 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), charge charge(i), position coordinates(:,i), orientation (if the style requires) orientations(:,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 :: orientation

(4, num_atoms) array

integer, public :: num_bond_types = 0

Number of bond_types

type(ia_specs_t), public, dimension(:), allocatable :: bond_specs

(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).

integer, public :: num_angle_types = 0

Number of angle_types

type(ia_specs_t), public, dimension(:), allocatable :: angle_specs

(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).

integer, public :: num_dihedral_types = 0

Number of dihedral_types

type(ia_specs_t), public, dimension(:), allocatable :: dihedral_specs

(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).

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).

integer, public :: num_tethers = 0

Number of tethers

type(tether_t), public, dimension(:), allocatable :: tethers

(num_tethers,) array

integer, public :: num_vdw_types = 0

Number of vdw_types

integer, public, dimension(:,:), allocatable :: vdw_pairs

(2, num_vdw_types) array. Stores atom type of interacting pairs, such that at_i >= at_j.

type(ia_specs_t), public, dimension(:), allocatable :: vdw_specs

(num_vdw_types,) array.

integer, public :: num_externals = 0

Number of external fields

type(extrn_field_t), public, dimension(:), allocatable :: extrn_fields

(num_externals,) array

logical, public :: leql = .true.

Is the system equilibrating? {T, F}

logical, public :: lrevive = .false.

Is this a restart run? {T, F}.

integer, public :: nts

Counter for MC cycles

integer, public :: nblks

Counter for MC blocks

integer, public :: nts_log = 1

Interval for logging (in MC cycles)

integer, public :: nts_dump = 1

Interval for dumping to revive file (in MC cycles)

integer, public :: nts_eql = 0

Number of MC cycles for equilibration

integer, public :: nts_eql_samp = 1

Sampling interval during equilibration (in MC cycles)

integer, public :: block_size = 100

Number of MC cycles in each block

integer, public :: nblks_sim = 0

Total number of blocks in production run

logical, public :: use_mc_pvt = .false.

Use MC pivot moves? {T, F}

logical, public :: use_mc_res_pvt = .false.

Use MC restricted pivot moves? {T, F}

logical, public :: use_mc_dspl = .false.

Use MC displacement moves? {T, F}.

logical, public :: use_mc_crnk = .false.

Use MC crankshaft moves? {T, F}. If side chains are present, crankshaft moves will operate only on side chain atoms. Otherwise, they will be performed on the backbone atoms.

logical, public :: use_mc_sc_pvt = .false.

Use MC pivot (only side chains) moves? {T, F}

logical, public :: use_verlet_tab = .false.

Use Verlet neighbor table? {T, F}

real(kind=rp), public :: mcm_mxdspl = 0.0_rp

Maximum displacement for MC displacement move.

real(kind=rp), public :: rcutoff = 0.0_rp

Maximum cutoff for short-ranged forces

real(kind=rp), public :: tskin = 0.0_rp

Thickness of the skin sphere (same for all)

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

Name of the file containing the initial configuration

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

Name of the revive file

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

Name of the trajectory file

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

Name of the statistics file

type(trajectory_t), public :: traj

Trajectory object

character(len=8), public :: job_tag = ''

A tag useful for array jobs, available only as a command line argument

logical, public :: read_seed = .false.

{T, F}

Whether to initialize the random number generator by reading a seed from a file. If read_seed == T, the seed will be read from a file 'random_seed.txt'

logical, public :: write_seed = .false.

{T, F}

Whether to write the random number generator seed. If write_seed == T the seed will be written to a file named 'random_seed.txt'

logical, public :: write_eql_stats = .false.

During equilibration, should the statistics file be written? {T, F}

logical, public :: write_traj = .false.

Should the trajectory be written to file? {T, F}

real(kind=rp), public :: energy_bond = 0.0_rp

Bond energy

real(kind=rp), public :: energy_angle = 0.0_rp

Angle energy

real(kind=rp), public :: energy_dihedral = 0.0_rp

Dihedral energy

real(kind=rp), public :: energy_vdw = 0.0_rp

vdw interaction energy

real(kind=rp), public :: energy_tether = 0.0_rp

Energetic contribution from tethers

real(kind=rp), public :: energy_external = 0.0_rp

Energetic contribution from external fields

integer, public, dimension(mx_mcmtyp) :: num_mc_moves = 0

Number of MC moves of each type in an MC cycle.

integer(kind=ip_long), public, dimension(2,mx_mcmtyp) :: mc_rec = 0

Number of attempts (first element) & accepts (second element) of MC moves. See above for type details.

integer, public :: excluded_atoms = 0

Control for excluded atoms in vdw calculation. No exclusion: 0, exclude 1-ring bonded neighbors: 1, exclude 2-ring bonded neighbors: 2, exclude 3-ring bonded neighbors: 3.

logical, public :: lvdw = .false.

Whether to calculate VDW interactions

logical, public :: lelectrostatics = .false.

Whether to calculate electrostatic interactions