150 REAL(kind=
dp) :: eps_pao = 0.0_dp
151 REAL(kind=
dp) :: cg_reset_limit = 0.1_dp
152 REAL(kind=
dp) :: mixing = 0.0_dp
153 REAL(kind=
dp) :: regularization = 0.0_dp
154 REAL(kind=
dp) :: penalty_dist = 0.0_dp
155 REAL(kind=
dp) :: penalty_strength = 0.0_dp
156 REAL(kind=
dp) :: check_unitary_tol = 0.0_dp
157 REAL(kind=
dp) :: check_grad_tol = 0.0_dp
158 REAL(kind=
dp) :: num_grad_eps = 0.0_dp
159 REAL(kind=
dp) :: eps_pgf = 0.0_dp
160 REAL(kind=
dp) :: linpot_precon_delta = 0.0_dp
161 REAL(kind=
dp) :: linpot_init_delta = 0.0_dp
162 REAL(kind=
dp) :: linpot_regu_delta = 0.0_dp
163 REAL(kind=
dp) :: linpot_regu_strength = 0.0_dp
164 INTEGER :: num_grad_order = -1
165 INTEGER :: max_pao = -1
166 INTEGER :: max_cycles = -1
167 INTEGER :: write_cycles = -1
168 INTEGER :: parameterization = -1
169 INTEGER :: optimizer = -1
170 INTEGER :: cg_init_steps = -1
171 LOGICAL :: precondition = .false.
172 LOGICAL :: ignore_convergence_failure = .false.
173 CHARACTER(LEN=default_path_length) :: preopt_dm_file =
""
174 CHARACTER(LEN=default_path_length) :: restart_file =
""
175 TYPE(filename_type),
DIMENSION(:),
ALLOCATABLE :: ml_training_set
177 INTEGER :: ml_method = -1
178 INTEGER :: ml_prior = -1
179 INTEGER :: ml_descriptor = -1
180 REAL(kind=
dp) :: ml_tolerance = 0.0_dp
181 REAL(kind=
dp) :: gp_noise_var = 0.0_dp
182 REAL(kind=
dp) :: gp_scale = 0.0_dp
186 INTEGER :: iw_atoms = -1
187 INTEGER :: iw_gap = -1
188 INTEGER :: iw_fockev = -1
189 INTEGER :: iw_opt = -1
190 INTEGER :: iw_mlvar = -1
191 INTEGER :: iw_mldata = -1
194 INTEGER :: istep = -1
195 REAL(kind=
dp) :: energy_prev = 0.0_dp
196 REAL(kind=
dp) :: step_start_time = 0.0_dp
197 REAL(kind=
dp) :: norm_g = 0.0_dp
199 LOGICAL :: matrix_x_ready = .false.
200 LOGICAL :: matrix_p_ready = .false.
201 LOGICAL :: constants_ready = .false.
202 LOGICAL :: need_initial_scf = .false.
225 DIMENSION(:) :: ml_training_matrices
228 DIMENSION(:) :: models
242 CHARACTER(len=*),
PARAMETER :: routinen =
'pao_finalize'
246 CALL timeset(routinen, handle)
256 DEALLOCATE (pao%ml_training_set)
257 IF (
ALLOCATED(pao%ml_training_matrices))
THEN
258 DEALLOCATE (pao%ml_training_matrices)
261 IF (
ALLOCATED(pao%models))
THEN
262 DO i = 1,
SIZE(pao%models)
263 IF (pao%models(i)%version > 0)
THEN
266 CALL omp_destroy_lock(pao%models(i)%lock)
268 DEALLOCATE (pao%models)
275 CALL timestop(handle)