36 INTEGER :: pp_type = -1
37 INTEGER :: nl_type = -1
38 CHARACTER(LEN=default_string_length) :: ref_functional =
""
39 REAL(kind=
dp) :: scaling = -1.0_dp
40 REAL(kind=
dp) :: rc_disp = -1.0_dp
41 REAL(kind=
dp) :: rc_d4 = -1.0_dp
42 REAL(kind=
dp) :: rc_cn = -1.0_dp
43 REAL(kind=
dp) :: d4_cutoff_width = 0.05_dp
44 REAL(kind=
dp) :: d4_3b_cutoff_width = 0.0_dp
45 REAL(kind=
dp) :: exp_pre = -1.0_dp
47 LOGICAL :: verbose = .false.
48 CHARACTER(LEN=default_path_length) :: parameter_file_name =
""
49 CHARACTER(LEN=default_path_length) :: kernel_file_name =
""
51 LOGICAL :: ext_charges = .false.
52 REAL(kind=
dp),
DIMENSION(:),
POINTER :: charges => null()
53 REAL(kind=
dp),
DIMENSION(:),
POINTER :: dcharges => null()
56 INTEGER :: max_elem = -1
58 REAL(kind=
dp) :: k1 = -1.0_dp, k2 = -1.0_dp, k3 = -1.0_dp
59 REAL(kind=
dp) :: alp = -1.0_dp
60 REAL(kind=
dp) :: s6 = -1.0_dp, s8 = -1.0_dp, sr6 = -1.0_dp
61 REAL(kind=
dp) :: sr8 = 1.0_dp
62 REAL(kind=
dp) :: a1 = -1.0_dp, a2 = -1.0_dp
63 REAL(kind=
dp) :: eps_cn = -1.0_dp
64 LOGICAL :: d4_reference_code = .false.
65 LOGICAL :: d4_debug = .false.
66 LOGICAL :: d3_reference_code = .false.
67 LOGICAL :: d3_scaling_explicit = .false.
68 LOGICAL :: doabc = .false.
69 LOGICAL :: c9cnst = .false.
70 LOGICAL :: lrc = .false.
71 LOGICAL :: srb = .false.
72 REAL(kind=
dp),
DIMENSION(4) :: srb_params = -1.0_dp
73 REAL(kind=
dp) :: s9 = -1.0_dp
75 DIMENSION(:),
POINTER :: sab_vdw => null(), sab_cn => null()
76 REAL(kind=
dp),
DIMENSION(:, :, :, :, :),
POINTER &
78 INTEGER,
DIMENSION(:),
POINTER :: maxci => null()
79 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: r0ab => null()
80 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rcov => null()
81 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eneg => null()
82 REAL(kind=
dp),
DIMENSION(:),
POINTER :: r2r4 => null()
84 REAL(kind=
dp),
DIMENSION(:),
POINTER :: cn => null()
85 TYPE(cn_kind_list),
DIMENSION(:),
POINTER :: cnkind => null()
86 TYPE(cn_atom_list),
DIMENSION(:),
POINTER :: cnlist => null()
88 LOGICAL :: domol = .false.
89 REAL(kind=
dp) :: kgc8 = -1.0_dp
91 REAL(kind=
dp) :: pw_cutoff = -1.0_dp
93 REAL(kind=
dp) :: b_value = -1.0_dp, c_value = -1.0_dp, scale_rvv10 = -1.0_dp
94 INTEGER :: nqs = -1, nr_points = -1
98 REAL(kind=
dp) :: r_max = -1.0_dp, q_cut = -1.0_dp, q_min = -1.0_dp, dk = -1.0_dp
104 REAL(kind=
dp),
DIMENSION(:),
POINTER :: q_mesh => null()
105 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER &
106 :: kernel_table => null()
109 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: d2y_dx2 => null()
110 INTEGER,
DIMENSION(:, :),
POINTER :: d3_exclude_pair => null()
111 INTEGER :: nd3_exclude_pair = -1
149 IF (
ASSOCIATED(dispersion_env))
THEN
151 IF (
ASSOCIATED(dispersion_env%maxci))
THEN
152 DEALLOCATE (dispersion_env%maxci)
154 IF (
ASSOCIATED(dispersion_env%c6ab))
THEN
155 DEALLOCATE (dispersion_env%c6ab)
157 IF (
ASSOCIATED(dispersion_env%r0ab))
THEN
158 DEALLOCATE (dispersion_env%r0ab)
160 IF (
ASSOCIATED(dispersion_env%rcov))
THEN
161 DEALLOCATE (dispersion_env%rcov)
163 IF (
ASSOCIATED(dispersion_env%eneg))
THEN
164 DEALLOCATE (dispersion_env%eneg)
166 IF (
ASSOCIATED(dispersion_env%r2r4))
THEN
167 DEALLOCATE (dispersion_env%r2r4)
169 IF (
ASSOCIATED(dispersion_env%cn))
THEN
170 DEALLOCATE (dispersion_env%cn)
172 IF (
ASSOCIATED(dispersion_env%cnkind))
THEN
173 DEALLOCATE (dispersion_env%cnkind)
175 IF (
ASSOCIATED(dispersion_env%cnlist))
THEN
176 DO i = 1,
SIZE(dispersion_env%cnlist)
177 DEALLOCATE (dispersion_env%cnlist(i)%atom)
179 DEALLOCATE (dispersion_env%cnlist)
182 IF (
ASSOCIATED(dispersion_env%q_mesh))
THEN
183 DEALLOCATE (dispersion_env%q_mesh)
185 IF (
ASSOCIATED(dispersion_env%kernel_table))
THEN
186 DEALLOCATE (dispersion_env%kernel_table)
188 IF (
ASSOCIATED(dispersion_env%d2y_dx2))
THEN
189 DEALLOCATE (dispersion_env%d2y_dx2)
191 IF (
ASSOCIATED(dispersion_env%d3_exclude_pair))
THEN
192 DEALLOCATE (dispersion_env%d3_exclude_pair)
198 IF (
ASSOCIATED(dispersion_env%charges))
THEN
199 DEALLOCATE (dispersion_env%charges)
201 IF (
ASSOCIATED(dispersion_env%dcharges))
THEN
202 DEALLOCATE (dispersion_env%dcharges)
205 DEALLOCATE (dispersion_env)