41 LOGICAL :: restart = .false., slow_growth = .false., wtcontrol = .false.
43 REAL(kind=
dp) :: ww = 0.0_dp, min_disp = 0.0_dp, energy = 0.0_dp
44 INTEGER :: n_hills = -1, nt_hills = -1, min_nt_hills = -1
45 INTEGER :: old_hill_number = -1, old_hill_step = -1
47 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: ss_history => null()
48 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: delta_s_history => null()
49 REAL(kind=
dp),
DIMENSION(:),
POINTER :: ww_history => null()
50 REAL(kind=
dp),
DIMENSION(:),
POINTER :: invdt_history => null()
52 REAL(kind=
dp) :: tail_cutoff = 0.0_dp
53 INTEGER :: p_exp = -1, q_exp = -1
70 INTEGER :: icolvar = -1
71 LOGICAL :: do_wall = .false., periodic = .false.
72 REAL(kind=
dp) :: mass = 0.0_dp, lambda = 0.0_dp, vvp = 0.0_dp
74 REAL(kind=
dp) :: epot_s = 0.0_dp, delta_s = 0.0_dp, epot_walls = 0.0_dp
75 REAL(kind=
dp) :: ss = 0.0_dp, ss0 = 0.0_dp, ff_s = 0.0_dp, ff_hills = 0.0_dp, ff_walls = 0.0_dp
76 TYPE(wall_type),
DIMENSION(:),
POINTER :: walls => null()
96 LOGICAL :: do_hills = .false., do_multiple_walkers = .false.
97 LOGICAL :: extended_lagrange = .false.
98 LOGICAL :: well_tempered = .false.
99 LOGICAL :: langevin = .false.
100 LOGICAL :: use_plumed = .false.
101 CHARACTER(LEN=default_path_length) :: plumed_input_file =
""
102 INTEGER :: n_colvar = -1
103 REAL(kind=
dp) :: ekin_s = 0.0_dp, epot_s = 0.0_dp, dt = 0.0_dp, &
104 avg_temp = 0.0_dp, epot_walls = 0.0_dp
105 LOGICAL :: tempcontrol = .false., restart = .false.
106 REAL(kind=
dp) :: temp_wanted = 0.0_dp, toll_temp = 0.0_dp
107 REAL(kind=
dp) :: delta_t = 0.0_dp, invdt = 0.0_dp, &
108 wtgamma = 0.0_dp, wttemperature = 0.0_dp
109 INTEGER :: n_steps = -1
113 REAL(kind=
dp),
POINTER :: time => null()
121 INTEGER :: tamcsteps = -1
122 REAL(kind=
dp) :: zdt = 0.0_dp
146 INTEGER,
INTENT(in) :: n_colvar
147 REAL(
dp),
INTENT(in) :: dt
152 LOGICAL :: do_langevin
154 NULLIFY (meta_env%multiple_walkers, &
155 meta_env%metadyn_section, &
159 meta_env%use_plumed = .false.
160 meta_env%plumed_input_file =
""
161 meta_env%metadyn_section => metadyn_section
162 meta_env%restart = .true.
163 meta_env%n_colvar = n_colvar
164 meta_env%para_env => para_env
165 CALL para_env%retain()
167 meta_env%ekin_s = 0.0_dp
168 meta_env%epot_s = 0.0_dp
169 meta_env%epot_walls = 0.0_dp
172 meta_env%tempcontrol = .false.
175 ALLOCATE (meta_env%hills_env)
176 ALLOCATE (meta_env%hills_env%ss_history(n_colvar, 0))
177 ALLOCATE (meta_env%hills_env%delta_s_history(n_colvar, 0))
178 ALLOCATE (meta_env%hills_env%ww_history(0))
179 ALLOCATE (meta_env%hills_env%invdt_history(0))
180 meta_env%hills_env%n_hills = 0
181 meta_env%hills_env%energy = 0.0_dp
182 meta_env%hills_env%restart = .true.
185 ALLOCATE (meta_env%metavar(n_colvar))
187 NULLIFY (meta_env%metavar(i)%walls)
188 meta_env%metavar(i)%mass = -huge(0.0_dp)
189 meta_env%metavar(i)%lambda = -huge(0.0_dp)
190 meta_env%metavar(i)%gamma = 0.0_dp
191 meta_env%metavar(i)%ss = 0.0_dp
192 meta_env%metavar(i)%ss0 = 0.0_dp
193 meta_env%metavar(i)%ff_s = 0.0_dp
194 meta_env%metavar(i)%vvp = 0.0_dp
195 meta_env%metavar(i)%epot_s = 0.0_dp
196 meta_env%metavar(i)%epot_walls = 0.0_dp
197 meta_env%metavar(i)%delta_s = 0.0_dp
198 meta_env%metavar(i)%ff_hills = 0.0_dp
199 meta_env%metavar(i)%ff_walls = 0.0_dp
200 meta_env%metavar(i)%do_wall = .false.
201 meta_env%metavar(i)%periodic = .false.
202 meta_env%metavar(i)%icolvar = 0
207 l_val=meta_env%do_multiple_walkers)
208 IF (meta_env%do_multiple_walkers)
THEN
209 ALLOCATE (meta_env%multiple_walkers)
212 NULLIFY (meta_env%multiple_walkers%walkers_status, &
213 meta_env%multiple_walkers%walkers_file_name)
214 meta_env%multiple_walkers%n_hills_local = 0
218 IF (do_langevin)
THEN
219 ALLOCATE (meta_env%rng(meta_env%n_colvar))
252 IF (
ASSOCIATED(meta_env%metavar))
THEN
253 DO i = 1,
SIZE(meta_env%metavar)
254 IF (
ASSOCIATED(meta_env%metavar(i)%walls))
THEN
255 DEALLOCATE (meta_env%metavar(i)%walls)
258 DEALLOCATE (meta_env%metavar)
262 CALL hills_env_release(meta_env%hills_env)
264 IF (
ASSOCIATED(meta_env%multiple_walkers))
THEN
265 IF (
ASSOCIATED(meta_env%multiple_walkers%walkers_status))
THEN
266 DEALLOCATE (meta_env%multiple_walkers%walkers_status)
268 IF (
ASSOCIATED(meta_env%multiple_walkers%walkers_file_name))
THEN
269 DEALLOCATE (meta_env%multiple_walkers%walkers_file_name)
271 DEALLOCATE (meta_env%multiple_walkers)
275 IF (meta_env%langevin) &
276 DEALLOCATE (meta_env%rng)
278 NULLIFY (meta_env%time)
279 NULLIFY (meta_env%metadyn_section)