23#include "./base/base_uses.f90"
29 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'free_energy_types'
38 REAL(kind=
dp),
DIMENSION(:),
POINTER :: ss => null()
39 INTEGER :: icolvar = -1
45 INTEGER :: cg_width = -1, max_cg_width = -1
46 INTEGER :: cg_points = -1
47 REAL(kind=
dp) :: eps_conv = 0.0_dp
48 REAL(kind=
dp) :: k_conf_lm = 0.0_dp
49 REAL(kind=
dp) :: sw_conf_lm = 0.0_dp
50 REAL(kind=
dp) :: vn_conf_lm = 0.0_dp
51 LOGICAL :: test_k = .false., &
59 REAL(kind=
dp),
DIMENSION(:),
POINTER :: avg => null()
60 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: var => null()
61 END TYPE statistical_type
65 INTEGER :: ncolvar = -1
67 INTEGER :: nr_points = -1, &
69 TYPE(ui_conv_type),
POINTER :: conv_par => null()
71 TYPE(statistical_type),
DIMENSION(:),
POINTER :: cg_data => null()
73 REAL(kind=
dp) :: eps_conv = 0.0_dp
74 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: covmx => null()
76 CHARACTER(len=default_string_length) :: plumed_input_file =
""
91 INTEGER :: i, id_method
95 cpassert(.NOT.
ASSOCIATED(fe_env))
100 SELECT CASE (id_method)
103 NULLIFY (fe_env%covmx, fe_env%uivar, fe_env%conv_par, fe_env%cg_data)
104 fe_env%type = id_method
106 fe_env%nr_rejected = 0
107 NULLIFY (fe_env%cg_data)
112 ALLOCATE (fe_env%conv_par)
113 fe_env%conv_par%test_k = .false.
114 fe_env%conv_par%test_sw = .false.
115 fe_env%conv_par%test_vn = .false.
117 i_val=fe_env%conv_par%cg_width)
119 i_val=fe_env%conv_par%max_cg_width)
121 i_val=fe_env%conv_par%cg_points)
123 r_val=fe_env%conv_par%eps_conv)
125 r_val=fe_env%conv_par%k_conf_lm)
127 r_val=fe_env%conv_par%sw_conf_lm)
129 r_val=fe_env%conv_par%vn_conf_lm)
131 ALLOCATE (fe_env%uivar(fe_env%ncolvar))
132 DO i = 1, fe_env%ncolvar
135 i_val=fe_env%uivar(i)%icolvar, i_rep_section=i)
136 NULLIFY (fe_env%uivar(i)%ss)
140 NULLIFY (fe_env%covmx, fe_env%uivar, fe_env%conv_par, fe_env%cg_data)
141 ALLOCATE (fe_env%covmx(3, 0))
142 fe_env%type = id_method
160 IF (
ASSOCIATED(fe_env))
THEN
161 IF (
ASSOCIATED(fe_env%covmx))
THEN
162 DEALLOCATE (fe_env%covmx)
164 IF (
ASSOCIATED(fe_env%cg_data))
THEN
165 DO i = 1,
SIZE(fe_env%cg_data)
166 IF (
ASSOCIATED(fe_env%cg_data(i)%avg))
THEN
167 DEALLOCATE (fe_env%cg_data(i)%avg)
169 IF (
ASSOCIATED(fe_env%cg_data(i)%var))
THEN
170 DEALLOCATE (fe_env%cg_data(i)%var)
173 DEALLOCATE (fe_env%cg_data)
175 IF (
ASSOCIATED(fe_env%conv_par))
THEN
176 DEALLOCATE (fe_env%conv_par)
178 IF (
ASSOCIATED(fe_env%uivar))
THEN
179 DO i = 1,
SIZE(fe_env%uivar)
180 IF (
ASSOCIATED(fe_env%uivar(i)%ss))
THEN
181 DEALLOCATE (fe_env%uivar(i)%ss)
184 DEALLOCATE (fe_env%uivar)
defines types for metadynamics calculation
subroutine, public fe_env_create(fe_env, fe_section)
creates the fe_env
subroutine, public fe_env_release(fe_env)
releases the fe_env
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length