41 LOGICAL :: restart, slow_growth, wtcontrol
43 REAL(kind=
dp) :: ww, min_disp, energy
44 INTEGER :: n_hills, nt_hills, min_nt_hills
45 INTEGER :: old_hill_number, old_hill_step
47 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: ss_history
48 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: delta_s_history
49 REAL(kind=
dp),
DIMENSION(:),
POINTER :: ww_history
50 REAL(kind=
dp),
DIMENSION(:),
POINTER :: invdt_history
52 REAL(kind=
dp) :: tail_cutoff
53 INTEGER :: p_exp, q_exp
145 INTEGER,
INTENT(in) :: n_colvar
146 REAL(
dp),
INTENT(in) :: dt
151 LOGICAL :: do_langevin
153 NULLIFY (meta_env%multiple_walkers, &
154 meta_env%metadyn_section, &
158 meta_env%use_plumed = .false.
159 meta_env%plumed_input_file =
""
160 meta_env%metadyn_section => metadyn_section
161 meta_env%restart = .true.
162 meta_env%n_colvar = n_colvar
163 meta_env%para_env => para_env
164 CALL para_env%retain()
166 meta_env%ekin_s = 0.0_dp
167 meta_env%epot_s = 0.0_dp
168 meta_env%epot_walls = 0.0_dp
171 meta_env%tempcontrol = .false.
174 ALLOCATE (meta_env%hills_env)
175 ALLOCATE (meta_env%hills_env%ss_history(n_colvar, 0))
176 ALLOCATE (meta_env%hills_env%delta_s_history(n_colvar, 0))
177 ALLOCATE (meta_env%hills_env%ww_history(0))
178 ALLOCATE (meta_env%hills_env%invdt_history(0))
179 meta_env%hills_env%n_hills = 0
180 meta_env%hills_env%energy = 0.0_dp
181 meta_env%hills_env%restart = .true.
184 ALLOCATE (meta_env%metavar(n_colvar))
186 NULLIFY (meta_env%metavar(i)%walls)
187 meta_env%metavar(i)%mass = -huge(0.0_dp)
188 meta_env%metavar(i)%lambda = -huge(0.0_dp)
189 meta_env%metavar(i)%gamma = 0.0_dp
190 meta_env%metavar(i)%ss = 0.0_dp
191 meta_env%metavar(i)%ss0 = 0.0_dp
192 meta_env%metavar(i)%ff_s = 0.0_dp
193 meta_env%metavar(i)%vvp = 0.0_dp
194 meta_env%metavar(i)%epot_s = 0.0_dp
195 meta_env%metavar(i)%epot_walls = 0.0_dp
196 meta_env%metavar(i)%delta_s = 0.0_dp
197 meta_env%metavar(i)%ff_hills = 0.0_dp
198 meta_env%metavar(i)%ff_walls = 0.0_dp
199 meta_env%metavar(i)%do_wall = .false.
200 meta_env%metavar(i)%periodic = .false.
201 meta_env%metavar(i)%icolvar = 0
206 l_val=meta_env%do_multiple_walkers)
207 IF (meta_env%do_multiple_walkers)
THEN
208 ALLOCATE (meta_env%multiple_walkers)
211 NULLIFY (meta_env%multiple_walkers%walkers_status, &
212 meta_env%multiple_walkers%walkers_file_name)
213 meta_env%multiple_walkers%n_hills_local = 0
217 IF (do_langevin)
THEN
218 ALLOCATE (meta_env%rng(meta_env%n_colvar))
251 IF (
ASSOCIATED(meta_env%metavar))
THEN
252 DO i = 1,
SIZE(meta_env%metavar)
253 IF (
ASSOCIATED(meta_env%metavar(i)%walls))
THEN
254 DEALLOCATE (meta_env%metavar(i)%walls)
257 DEALLOCATE (meta_env%metavar)
261 CALL hills_env_release(meta_env%hills_env)
263 IF (
ASSOCIATED(meta_env%multiple_walkers))
THEN
264 IF (
ASSOCIATED(meta_env%multiple_walkers%walkers_status))
THEN
265 DEALLOCATE (meta_env%multiple_walkers%walkers_status)
267 IF (
ASSOCIATED(meta_env%multiple_walkers%walkers_file_name))
THEN
268 DEALLOCATE (meta_env%multiple_walkers%walkers_file_name)
270 DEALLOCATE (meta_env%multiple_walkers)
274 IF (meta_env%langevin) &
275 DEALLOCATE (meta_env%rng)
277 NULLIFY (meta_env%time)
278 NULLIFY (meta_env%metadyn_section)