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) :: a1 = -1.0_dp, a2 = -1.0_dp
62 REAL(kind=
dp) :: eps_cn = -1.0_dp
63 LOGICAL :: d4_reference_code = .false.
64 LOGICAL :: d4_debug = .false.
65 LOGICAL :: d3_reference_code = .false.
66 LOGICAL :: d3_scaling_explicit = .false.
67 LOGICAL :: doabc = .false.
68 LOGICAL :: c9cnst = .false.
69 LOGICAL :: lrc = .false.
70 LOGICAL :: srb = .false.
71 REAL(kind=
dp),
DIMENSION(4) :: srb_params = -1.0_dp
72 REAL(kind=
dp) :: s9 = -1.0_dp
74 DIMENSION(:),
POINTER :: sab_vdw => null(), sab_cn => null()
75 REAL(kind=
dp),
DIMENSION(:, :, :, :, :),
POINTER &
77 INTEGER,
DIMENSION(:),
POINTER :: maxci => null()
78 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: r0ab => null()
79 REAL(kind=
dp),
DIMENSION(:),
POINTER :: rcov => null()
80 REAL(kind=
dp),
DIMENSION(:),
POINTER :: eneg => null()
81 REAL(kind=
dp),
DIMENSION(:),
POINTER :: r2r4 => null()
83 REAL(kind=
dp),
DIMENSION(:),
POINTER :: cn => null()
84 TYPE(cn_kind_list),
DIMENSION(:),
POINTER :: cnkind => null()
85 TYPE(cn_atom_list),
DIMENSION(:),
POINTER :: cnlist => null()
87 LOGICAL :: domol = .false.
88 REAL(kind=
dp) :: kgc8 = -1.0_dp
90 REAL(kind=
dp) :: pw_cutoff = -1.0_dp
92 REAL(kind=
dp) :: b_value = -1.0_dp, c_value = -1.0_dp, scale_rvv10 = -1.0_dp
93 INTEGER :: nqs = -1, nr_points = -1
97 REAL(kind=
dp) :: r_max = -1.0_dp, q_cut = -1.0_dp, q_min = -1.0_dp, dk = -1.0_dp
103 REAL(kind=
dp),
DIMENSION(:),
POINTER :: q_mesh => null()
104 REAL(kind=
dp),
DIMENSION(:, :, :),
POINTER &
105 :: kernel_table => null()
108 REAL(kind=
dp),
DIMENSION(:, :),
POINTER :: d2y_dx2 => null()
109 INTEGER,
DIMENSION(:, :),
POINTER :: d3_exclude_pair => null()
110 INTEGER :: nd3_exclude_pair = -1
148 IF (
ASSOCIATED(dispersion_env))
THEN
150 IF (
ASSOCIATED(dispersion_env%maxci))
THEN
151 DEALLOCATE (dispersion_env%maxci)
153 IF (
ASSOCIATED(dispersion_env%c6ab))
THEN
154 DEALLOCATE (dispersion_env%c6ab)
156 IF (
ASSOCIATED(dispersion_env%r0ab))
THEN
157 DEALLOCATE (dispersion_env%r0ab)
159 IF (
ASSOCIATED(dispersion_env%rcov))
THEN
160 DEALLOCATE (dispersion_env%rcov)
162 IF (
ASSOCIATED(dispersion_env%eneg))
THEN
163 DEALLOCATE (dispersion_env%eneg)
165 IF (
ASSOCIATED(dispersion_env%r2r4))
THEN
166 DEALLOCATE (dispersion_env%r2r4)
168 IF (
ASSOCIATED(dispersion_env%cn))
THEN
169 DEALLOCATE (dispersion_env%cn)
171 IF (
ASSOCIATED(dispersion_env%cnkind))
THEN
172 DEALLOCATE (dispersion_env%cnkind)
174 IF (
ASSOCIATED(dispersion_env%cnlist))
THEN
175 DO i = 1,
SIZE(dispersion_env%cnlist)
176 DEALLOCATE (dispersion_env%cnlist(i)%atom)
178 DEALLOCATE (dispersion_env%cnlist)
181 IF (
ASSOCIATED(dispersion_env%q_mesh))
THEN
182 DEALLOCATE (dispersion_env%q_mesh)
184 IF (
ASSOCIATED(dispersion_env%kernel_table))
THEN
185 DEALLOCATE (dispersion_env%kernel_table)
187 IF (
ASSOCIATED(dispersion_env%d2y_dx2))
THEN
188 DEALLOCATE (dispersion_env%d2y_dx2)
190 IF (
ASSOCIATED(dispersion_env%d3_exclude_pair))
THEN
191 DEALLOCATE (dispersion_env%d3_exclude_pair)
197 IF (
ASSOCIATED(dispersion_env%charges))
THEN
198 DEALLOCATE (dispersion_env%charges)
200 IF (
ASSOCIATED(dispersion_env%dcharges))
THEN
201 DEALLOCATE (dispersion_env%dcharges)
204 DEALLOCATE (dispersion_env)