18 #include "../base/base_uses.f90"
40 PUBLIC :: pint_env_type
41 PUBLIC :: normalmode_env_type
42 PUBLIC :: staging_env_type
43 PUBLIC :: pile_therm_type
44 PUBLIC :: piglet_therm_type
45 PUBLIC :: qtb_therm_type
113 INTEGER :: p = 0, nnos = 0, nrespa = 0, iter = 0, ndim = 0, transform = 0
114 INTEGER :: first_step = 0, last_step = 0, num_steps = 0, first_propagated_mode = 0
115 INTEGER :: pimd_thermostat = 0, harm_integrator = 0, thermostat_rng_seed = 0
116 REAL(kind=
dp) :: t_tol = 0.0_dp, v_tol = 0.0_dp, kt = 0.0_dp, beta = 0.0_dp, dt = 0.0_dp, &
117 e_gle = 0.0_dp, e_pile = 0.0_dp, e_piglet = 0.0_dp, e_qtb = 0.0_dp, e_pot_h = 0.0_dp, &
118 e_kin_beads = 0.0_dp, e_pot_t = 0.0_dp, e_kin_t = 0.0_dp, t = 0.0_dp, time_per_step = 0.0_dp
119 REAL(kind=
dp) :: link_action = 0.0_dp, pot_action = 0.0_dp
120 TYPE(cp_logger_type),
POINTER :: logger => null()
121 TYPE(replica_env_type),
POINTER :: replicas => null()
122 TYPE(section_vals_type),
POINTER :: input => null()
123 TYPE(staging_env_type),
POINTER :: staging_env => null()
124 TYPE(normalmode_env_type),
POINTER :: normalmode_env => null()
125 TYPE(rng_stream_type) :: randomg = rng_stream_type()
126 TYPE(gle_type),
POINTER :: gle => null()
127 REAL(kind=
dp),
DIMENSION(e_num_ids) :: energy = 0.0_dp
128 REAL(kind=
dp),
DIMENSION(:),
POINTER :: mass => null(), e_pot_bead => null()
129 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: x => null(), v => null(), f => null(), mass_beads => null(), &
130 mass_fict => null(), ux => null(), ux_t => null(), uv => null(), uv_t => null(), &
131 uv_new => null(), uf => null(), uf_h => null(), external_f => null()
132 REAL(kind=
dp),
DIMENSION(:),
POINTER :: centroid => null()
133 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: tx => null(), tv => null(), tv_t => null(), &
134 tv_old => null(), tv_new => null(), tf => null()
135 REAL(kind=
dp),
DIMENSION(:),
POINTER :: q => null()
136 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rtmp_ndim => null(), rtmp_natom => null()
137 REAL(kind=
dp),
DIMENSION(:),
POINTER :: iwsinex => null(), wsinex => null(), cosex => null()
138 TYPE(pile_therm_type),
POINTER :: pile_therm => null()
139 TYPE(piglet_therm_type),
POINTER :: piglet_therm => null()
140 TYPE(qtb_therm_type),
POINTER :: qtb_therm => null()
141 TYPE(pint_propagator_type),
POINTER :: propagator => null()
142 TYPE(simpar_type),
POINTER :: simpar => null()
143 INTEGER :: n_atoms_constraints = 0
144 INTEGER,
DIMENSION(:),
POINTER :: atoms_constraints => null()
145 LOGICAL :: beadwise_constraints = .false.
146 REAL(kind=
dp) :: ktcorr = 0.0_dp
148 END TYPE pint_env_type
165 TYPE normalmode_env_type
167 REAL(kind=
dp) :: q_bead = 0.0_dp, q_centroid = 0.0_dp, modefactor = 0.0_dp, harm = 0.0_dp
168 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: x2u => null(), u2x => null()
169 REAL(kind=
dp),
DIMENSION(:),
POINTER :: lambda => null()
170 END TYPE normalmode_env_type
184 TYPE staging_env_type
185 INTEGER :: nseg = 0, j = 0, p = 0
186 REAL(kind=
dp) :: w_p = 0.0_dp, w_j = 0.0_dp, q_stage = 0.0_dp, q_end = 0.0_dp
187 END TYPE staging_env_type
203 REAL(kind=
dp) :: lamb = 0.0_dp, tau = 0.0_dp, thermostat_energy = 0.0_dp
204 REAL(kind=
dp),
DIMENSION(:),
POINTER :: c1 => null()
205 REAL(kind=
dp),
DIMENSION(:),
POINTER :: c2 => null()
206 REAL(kind=
dp),
DIMENSION(:),
POINTER :: g_fric => null()
207 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: massfact => null()
208 TYPE(rng_stream_type) :: gaussian_rng_stream = rng_stream_type()
209 END TYPE pile_therm_type
232 TYPE piglet_therm_type
233 INTEGER :: ndim = 0, p = 0, nsp1 = 0
234 REAL(kind=
dp) :: thermostat_energy = 0.0_dp
235 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: a_mat => null(), c_mat => null()
236 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: gle_s => null(), gle_t => null()
237 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: smalls => null()
238 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: temp1 => null()
239 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: temp2 => null()
240 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: sqrtmass => null()
241 TYPE(rng_stream_type) :: gaussian_rng_stream = rng_stream_type()
242 END TYPE piglet_therm_type
269 REAL(kind=
dp) :: tau = 0.0_dp, lamb = 0.0_dp
270 REAL(kind=
dp) :: taucut = 0.0_dp, lambcut = 0.0_dp
271 REAL(kind=
dp),
DIMENSION(:),
POINTER :: c1 => null()
272 REAL(kind=
dp),
DIMENSION(:),
POINTER :: c2 => null()
273 REAL(kind=
dp),
DIMENSION(:),
POINTER :: g_fric => null()
274 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: massfact => null()
275 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: rf => null()
276 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: h => null()
277 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER :: r => null()
278 INTEGER,
DIMENSION(:),
POINTER :: step => null()
279 INTEGER,
DIMENSION(:),
POINTER :: cpt => null()
282 REAL(kind=
dp) :: thermostat_energy = 0.0_dp
283 TYPE(rng_stream_type) :: gaussian_rng_stream = rng_stream_type()
284 CHARACTER(LEN=rng_record_length),
DIMENSION(:),
POINTER :: rng_status => null()
285 END TYPE qtb_therm_type
296 TYPE pint_propagator_type
297 INTEGER :: prop_kind = 0
298 REAL(kind=
dp) :: temp_phys2sim = 0.0_dp
299 REAL(kind=
dp) :: temp_sim2phys = 0.0_dp
300 REAL(kind=
dp) :: physpotscale = 0.0_dp
301 END TYPE pint_propagator_type
various routines to log and control the output. The idea is that decisions about where to log should ...
Defines the basic variable types.
integer, parameter, public dp
Parallel (pseudo)random number generator (RNG) for multiple streams and substreams of random numbers.
integer, parameter, public rng_record_length
integer, parameter, public e_kin_thermo_id
integer, parameter, public e_conserved_id
integer, parameter, public e_num_ids
integer, parameter, public thermostat_none
integer, parameter, public thermostat_gle
integer, parameter, public e_potential_id
integer, parameter, public thermostat_pile
integer, parameter, public thermostat_piglet
integer, parameter, public thermostat_nose
integer, parameter, public e_kin_virial_id
integer, parameter, public thermostat_qtb
types used to handle many replica of the same system that differ only in atom positions,...
Type for storing MD parameters.