(git:48c3be8)
Loading...
Searching...
No Matches
xtb_types.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Definition of the xTB parameter types.
10!> \author JGH (10.2018)
11! **************************************************************************************************
12! To be done:
13! 1) Ewald defaults options for GMAX, ALPHA, RCUT
14! 2) QM/MM debugging of forces -- done
15! 3) Periodic displacement field (debugging)
16! 4) Check for RTP and EMD
17! 5) Wannier localization
18! 6) Charge Mixing methods: Broyden/Pulay (more debugging needed, also add to DFTB)
19! **************************************************************************************************
21
24 USE cp_output_handling, ONLY: cp_p_file,&
29 USE kinds, ONLY: default_string_length,&
30 dp
31#include "./base/base_uses.f90"
32
33 IMPLICIT NONE
34
35 PRIVATE
36
37! *** Global parameters ***
38
39 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xtb_types'
40
41! **************************************************************************************************
43 ! PRIVATE
44 CHARACTER(LEN=default_string_length) :: typ = ""
45 CHARACTER(LEN=default_string_length) :: aname = ""
46 CHARACTER(LEN=2) :: symbol = ""
47 LOGICAL :: defined = .false.
48 INTEGER :: z = -1 !atomic number
49 REAL(kind=dp) :: zeff = -1.0_dp !effective core charge
50 INTEGER :: natorb = -1 !number of orbitals
51 INTEGER :: lmax = -1 !max angular momentum
52 !
53 REAL(kind=dp) :: rcut = -1.0_dp !cutoff radius for sr-Coulomb
54 REAL(kind=dp) :: rcov = -1.0_dp !covalent radius
55 REAL(kind=dp) :: electronegativity = -1.0_dp !electronegativity
56 !
57 REAL(kind=dp) :: kx = -1.0_dp !scaling for halogen term
58 !
59 REAL(kind=dp) :: eta = -1.0_dp !Atomic Hubbard parameter
60 REAL(kind=dp) :: xgamma = -1.0_dp !charge derivative of eta
61 REAL(kind=dp) :: alpha = -1.0_dp !exponential scaling parameter for repulsion potential
62 REAL(kind=dp) :: zneff = -1.0_dp !effective core charge for repulsion potential
63 ! shell specific parameters
64 INTEGER :: nshell = -1 !number of orbital shells
65 INTEGER, DIMENSION(5) :: nval = -1 ! n-quantum number of shell i
66 INTEGER, DIMENSION(5) :: lval = -1 ! l-quantum number of shell i
67 INTEGER, DIMENSION(5) :: occupation = -1 ! occupation of shell i
68 INTEGER, DIMENSION(5) :: ngauss = -1 ! number of gaussians of shell i
69 REAL(kind=dp), DIMENSION(5) :: kpoly = -1.0_dp
70 REAL(kind=dp), DIMENSION(5) :: kappa = -1.0_dp
71 REAL(kind=dp), DIMENSION(5) :: hen = -1.0_dp
72 REAL(kind=dp), DIMENSION(5) :: zeta = -1.0_dp
73 REAL(kind=dp), DIMENSION(3, 3) :: wall = -1.0_dp ! spin polarisation
74 ! gfn0 params
75 REAL(kind=dp) :: en = -1.0_dp
76 REAL(kind=dp) :: kqat2 = -1.0_dp
77 REAL(kind=dp), DIMENSION(5) :: kq = -1.0_dp
78 REAL(kind=dp), DIMENSION(5) :: kcn = -1.0_dp
79 ! charge equilibration parameter gfn0
80 REAL(kind=dp) :: xi = -1.0_dp
81 REAL(kind=dp) :: kappa0 = -1.0_dp
82 REAL(kind=dp) :: alpg = -1.0_dp
83 ! AO to shell pointer
84 INTEGER, DIMENSION(25) :: nao = -1, lao = -1
85 ! Upper limit of Mulliken charge
86 REAL(kind=dp) :: chmax = -1.0_dp
87 END TYPE xtb_atom_type
88
89! *** Public data types ***
90
93
94CONTAINS
95
96! **************************************************************************************************
97!> \brief ...
98!> \param xtb_parameter ...
99! **************************************************************************************************
100 SUBROUTINE allocate_xtb_atom_param(xtb_parameter)
101
102 TYPE(xtb_atom_type), POINTER :: xtb_parameter
103
104 IF (ASSOCIATED(xtb_parameter)) THEN
105 CALL deallocate_xtb_atom_param(xtb_parameter)
106 END IF
107
108 ALLOCATE (xtb_parameter)
109
110 xtb_parameter%defined = .false.
111 xtb_parameter%aname = ""
112 xtb_parameter%symbol = ""
113 xtb_parameter%typ = "NONE"
114 xtb_parameter%z = -1
115 xtb_parameter%zeff = -1.0_dp
116 xtb_parameter%natorb = 0
117 xtb_parameter%lmax = -1
118 xtb_parameter%rcut = 0.0_dp
119 xtb_parameter%rcov = 0.0_dp
120 xtb_parameter%electronegativity = 0.0_dp
121 xtb_parameter%kx = -100.0_dp
122 xtb_parameter%eta = 0.0_dp
123 xtb_parameter%xgamma = 0.0_dp
124 xtb_parameter%alpha = 0.0_dp
125 xtb_parameter%zneff = 0.0_dp
126 xtb_parameter%nshell = 0
127 xtb_parameter%nval = 0
128 xtb_parameter%lval = 0
129 xtb_parameter%occupation = 0
130 xtb_parameter%ngauss = 0
131 xtb_parameter%kpoly = 0.0_dp
132 xtb_parameter%kappa = 0.0_dp
133 xtb_parameter%wall = 0.0_dp
134 xtb_parameter%hen = 0.0_dp
135 xtb_parameter%zeta = 0.0_dp
136 xtb_parameter%en = 0.0_dp
137 xtb_parameter%kqat2 = 0.0_dp
138 xtb_parameter%kq = 0.0_dp
139 xtb_parameter%kcn = 0.0_dp
140 xtb_parameter%xi = 0.0_dp
141 xtb_parameter%kappa0 = 0.0_dp
142 xtb_parameter%alpg = 0.0_dp
143 xtb_parameter%nao = 0
144 xtb_parameter%lao = 0
145 xtb_parameter%chmax = 0.0_dp
146
147 END SUBROUTINE allocate_xtb_atom_param
148
149! **************************************************************************************************
150!> \brief ...
151!> \param xtb_parameter ...
152! **************************************************************************************************
153 SUBROUTINE deallocate_xtb_atom_param(xtb_parameter)
154
155 TYPE(xtb_atom_type), POINTER :: xtb_parameter
156
157 cpassert(ASSOCIATED(xtb_parameter))
158 DEALLOCATE (xtb_parameter)
159
160 END SUBROUTINE deallocate_xtb_atom_param
161
162! **************************************************************************************************
163!> \brief ...
164!> \param xtb_parameter ...
165!> \param symbol ...
166!> \param aname ...
167!> \param typ ...
168!> \param defined ...
169!> \param z ...
170!> \param zeff ...
171!> \param natorb ...
172!> \param lmax ...
173!> \param nao ...
174!> \param lao ...
175!> \param rcut ...
176!> \param rcov ...
177!> \param kx ...
178!> \param eta ...
179!> \param xgamma ...
180!> \param alpha ...
181!> \param zneff ...
182!> \param nshell ...
183!> \param nval ...
184!> \param lval ...
185!> \param kpoly ...
186!> \param kappa ...
187!> \param wall ...
188!> \param hen ...
189!> \param zeta ...
190!> \param xi ...
191!> \param kappa0 ...
192!> \param alpg ...
193!> \param occupation ...
194!> \param ngauss ...
195!> \param electronegativity ...
196!> \param chmax ...
197!> \param en ...
198!> \param kqat2 ...
199!> \param kcn ...
200!> \param kq ...
201! **************************************************************************************************
202 SUBROUTINE get_xtb_atom_param(xtb_parameter, symbol, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, &
203 rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, &
204 wall, hen, zeta, xi, kappa0, alpg, occupation, ngauss, electronegativity, chmax, &
205 en, kqat2, kcn, kq)
206
207 TYPE(xtb_atom_type), POINTER :: xtb_parameter
208 CHARACTER(LEN=2), INTENT(OUT), OPTIONAL :: symbol
209 CHARACTER(LEN=default_string_length), &
210 INTENT(OUT), OPTIONAL :: aname, typ
211 LOGICAL, INTENT(OUT), OPTIONAL :: defined
212 INTEGER, INTENT(OUT), OPTIONAL :: z
213 REAL(kind=dp), INTENT(OUT), OPTIONAL :: zeff
214 INTEGER, INTENT(OUT), OPTIONAL :: natorb, lmax
215 INTEGER, DIMENSION(25), INTENT(OUT), OPTIONAL :: nao, lao
216 REAL(kind=dp), INTENT(OUT), OPTIONAL :: rcut, rcov, kx, eta, xgamma, alpha, zneff
217 INTEGER, INTENT(OUT), OPTIONAL :: nshell
218 INTEGER, DIMENSION(5), INTENT(OUT), OPTIONAL :: nval, lval
219 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: kpoly, kappa
220 REAL(kind=dp), DIMENSION(3, 3), INTENT(OUT), &
221 OPTIONAL :: wall
222 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: hen, zeta
223 REAL(kind=dp), INTENT(OUT), OPTIONAL :: xi, kappa0, alpg
224 INTEGER, DIMENSION(5), INTENT(OUT), OPTIONAL :: occupation, ngauss
225 REAL(kind=dp), INTENT(OUT), OPTIONAL :: electronegativity, chmax, en, kqat2
226 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: kcn, kq
227
228 cpassert(ASSOCIATED(xtb_parameter))
229
230 IF (PRESENT(symbol)) symbol = xtb_parameter%symbol
231 IF (PRESENT(aname)) aname = xtb_parameter%aname
232 IF (PRESENT(typ)) typ = xtb_parameter%typ
233 IF (PRESENT(defined)) defined = xtb_parameter%defined
234 IF (PRESENT(z)) z = xtb_parameter%z
235 IF (PRESENT(zeff)) zeff = xtb_parameter%zeff
236 IF (PRESENT(natorb)) natorb = xtb_parameter%natorb
237 IF (PRESENT(lmax)) lmax = xtb_parameter%lmax
238 IF (PRESENT(nao)) nao = xtb_parameter%nao
239 IF (PRESENT(lao)) lao = xtb_parameter%lao
240 !
241 IF (PRESENT(rcut)) rcut = xtb_parameter%rcut
242 IF (PRESENT(rcov)) rcov = xtb_parameter%rcov
243 IF (PRESENT(kx)) kx = xtb_parameter%kx
244 IF (PRESENT(electronegativity)) electronegativity = xtb_parameter%electronegativity
245 IF (PRESENT(eta)) eta = xtb_parameter%eta
246 IF (PRESENT(xgamma)) xgamma = xtb_parameter%xgamma
247 IF (PRESENT(alpha)) alpha = xtb_parameter%alpha
248 IF (PRESENT(zneff)) zneff = xtb_parameter%zneff
249 IF (PRESENT(nshell)) nshell = xtb_parameter%nshell
250 IF (PRESENT(nval)) nval = xtb_parameter%nval
251 IF (PRESENT(lval)) lval = xtb_parameter%lval
252 IF (PRESENT(occupation)) occupation = xtb_parameter%occupation
253 IF (PRESENT(ngauss)) ngauss = xtb_parameter%ngauss
254 IF (PRESENT(kpoly)) kpoly = xtb_parameter%kpoly
255 IF (PRESENT(kappa)) kappa = xtb_parameter%kappa
256 IF (PRESENT(wall)) wall(1:3, 1:3) = xtb_parameter%wall(1:3, 1:3)
257 IF (PRESENT(hen)) hen = xtb_parameter%hen
258 IF (PRESENT(zeta)) zeta = xtb_parameter%zeta
259 IF (PRESENT(chmax)) chmax = xtb_parameter%chmax
260 IF (PRESENT(xi)) xi = xtb_parameter%xi
261 IF (PRESENT(kappa0)) kappa0 = xtb_parameter%kappa0
262 IF (PRESENT(alpg)) alpg = xtb_parameter%alpg
263 IF (PRESENT(en)) en = xtb_parameter%en
264 IF (PRESENT(kqat2)) kqat2 = xtb_parameter%kqat2
265 IF (PRESENT(kcn)) kcn = xtb_parameter%kcn
266 IF (PRESENT(kq)) kq = xtb_parameter%kq
267
268 END SUBROUTINE get_xtb_atom_param
269
270! **************************************************************************************************
271!> \brief ...
272!> \param xtb_parameter ...
273!> \param aname ...
274!> \param typ ...
275!> \param defined ...
276!> \param z ...
277!> \param zeff ...
278!> \param natorb ...
279!> \param lmax ...
280!> \param nao ...
281!> \param lao ...
282!> \param rcut ...
283!> \param rcov ...
284!> \param kx ...
285!> \param eta ...
286!> \param xgamma ...
287!> \param alpha ...
288!> \param zneff ...
289!> \param nshell ...
290!> \param nval ...
291!> \param lval ...
292!> \param kpoly ...
293!> \param kappa ...
294!> \param wall ...
295!> \param hen ...
296!> \param zeta ...
297!> \param xi ...
298!> \param kappa0 ...
299!> \param alpg ...
300!> \param electronegativity ...
301!> \param occupation ...
302!> \param ngauss ...
303!> \param chmax ...
304!> \param en ...
305!> \param kqat2 ...
306!> \param kcn ...
307!> \param kq ...
308! **************************************************************************************************
309 SUBROUTINE set_xtb_atom_param(xtb_parameter, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, &
310 rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, &
311 wall, hen, zeta, xi, kappa0, alpg, electronegativity, occupation, ngauss, chmax, &
312 en, kqat2, kcn, kq)
313
314 TYPE(xtb_atom_type), POINTER :: xtb_parameter
315 CHARACTER(LEN=default_string_length), INTENT(IN), &
316 OPTIONAL :: aname, typ
317 LOGICAL, INTENT(IN), OPTIONAL :: defined
318 INTEGER, INTENT(IN), OPTIONAL :: z
319 REAL(kind=dp), INTENT(IN), OPTIONAL :: zeff
320 INTEGER, INTENT(IN), OPTIONAL :: natorb, lmax
321 INTEGER, DIMENSION(25), INTENT(IN), OPTIONAL :: nao, lao
322 REAL(kind=dp), INTENT(IN), OPTIONAL :: rcut, rcov, kx, eta, xgamma, alpha, zneff
323 INTEGER, INTENT(IN), OPTIONAL :: nshell
324 INTEGER, DIMENSION(5), INTENT(IN), OPTIONAL :: nval, lval
325 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: kpoly, kappa
326 REAL(kind=dp), DIMENSION(3, 3), INTENT(IN), &
327 OPTIONAL :: wall
328 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: hen, zeta
329 REAL(kind=dp), INTENT(IN), OPTIONAL :: xi, kappa0, alpg, electronegativity
330 INTEGER, DIMENSION(5), INTENT(IN), OPTIONAL :: occupation, ngauss
331 REAL(kind=dp), INTENT(IN), OPTIONAL :: chmax, en, kqat2
332 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: kcn, kq
333
334 cpassert(ASSOCIATED(xtb_parameter))
335
336 IF (PRESENT(aname)) xtb_parameter%aname = aname
337 IF (PRESENT(typ)) xtb_parameter%typ = typ
338 IF (PRESENT(defined)) xtb_parameter%defined = defined
339 IF (PRESENT(z)) xtb_parameter%z = z
340 IF (PRESENT(zeff)) xtb_parameter%zeff = zeff
341 IF (PRESENT(natorb)) xtb_parameter%natorb = natorb
342 IF (PRESENT(lmax)) xtb_parameter%lmax = lmax
343 IF (PRESENT(nao)) xtb_parameter%nao = nao
344 IF (PRESENT(lao)) xtb_parameter%lao = lao
345 !
346 IF (PRESENT(rcut)) xtb_parameter%rcut = rcut
347 IF (PRESENT(rcov)) xtb_parameter%rcov = rcov
348 IF (PRESENT(kx)) xtb_parameter%kx = kx
349 IF (PRESENT(electronegativity)) xtb_parameter%electronegativity = electronegativity
350 IF (PRESENT(eta)) xtb_parameter%eta = eta
351 IF (PRESENT(xgamma)) xtb_parameter%xgamma = xgamma
352 IF (PRESENT(alpha)) xtb_parameter%alpha = alpha
353 IF (PRESENT(zneff)) xtb_parameter%zneff = zneff
354 IF (PRESENT(nshell)) xtb_parameter%nshell = nshell
355 IF (PRESENT(nval)) xtb_parameter%nval = nval
356 IF (PRESENT(lval)) xtb_parameter%lval = lval
357 IF (PRESENT(occupation)) xtb_parameter%occupation = occupation
358 IF (PRESENT(ngauss)) xtb_parameter%ngauss = ngauss
359 IF (PRESENT(kpoly)) xtb_parameter%kpoly = kpoly
360 IF (PRESENT(kappa)) xtb_parameter%kappa = kappa
361 IF (PRESENT(wall)) xtb_parameter%wall(1:3, 1:3) = wall(1:3, 1:3)
362 IF (PRESENT(hen)) xtb_parameter%hen = hen
363 IF (PRESENT(zeta)) xtb_parameter%zeta = zeta
364 IF (PRESENT(chmax)) xtb_parameter%chmax = chmax
365 !
366 IF (PRESENT(xi)) xtb_parameter%xi = xi
367 IF (PRESENT(kappa0)) xtb_parameter%kappa0 = kappa0
368 IF (PRESENT(alpg)) xtb_parameter%alpg = alpg
369 IF (PRESENT(en)) xtb_parameter%en = en
370 IF (PRESENT(kqat2)) xtb_parameter%kqat2 = kqat2
371 IF (PRESENT(kcn)) xtb_parameter%kcn = kcn
372 IF (PRESENT(kq)) xtb_parameter%kq = kq
373
374 END SUBROUTINE set_xtb_atom_param
375
376! **************************************************************************************************
377!> \brief ...
378!> \param xtb_parameter ...
379!> \param gfn_type ...
380!> \param subsys_section ...
381! **************************************************************************************************
382 SUBROUTINE write_xtb_atom_param(xtb_parameter, gfn_type, subsys_section)
383
384 TYPE(xtb_atom_type), POINTER :: xtb_parameter
385 INTEGER, INTENT(IN) :: gfn_type
386 TYPE(section_vals_type), POINTER :: subsys_section
387
388 CHARACTER(LEN=default_string_length) :: aname, bb
389 INTEGER :: i, io_unit, m, natorb, nshell
390 INTEGER, DIMENSION(5) :: lval, ngauss, nval, occupation
391 LOGICAL :: defined, have_sp
392 REAL(dp) :: zeff
393 REAL(kind=dp) :: alpha, en, eta, xgamma, zneff
394 REAL(kind=dp), DIMENSION(3, 3) :: wall
395 REAL(kind=dp), DIMENSION(5) :: hen, kappa, kpoly, zeta
396 TYPE(cp_logger_type), POINTER :: logger
397
398 NULLIFY (logger)
399 logger => cp_get_default_logger()
400 IF (ASSOCIATED(xtb_parameter) .AND. &
401 btest(cp_print_key_should_output(logger%iter_info, subsys_section, &
402 "PRINT%KINDS/POTENTIAL"), cp_p_file)) THEN
403
404 io_unit = cp_print_key_unit_nr(logger, subsys_section, "PRINT%KINDS", &
405 extension=".Log")
406
407 IF (io_unit > 0) THEN
408 SELECT CASE (gfn_type)
409 CASE (0)
410 cpabort("gfn_type = 0 missing code")
411 CASE (1)
412 CALL get_xtb_atom_param(xtb_parameter, aname=aname, defined=defined, zeff=zeff, natorb=natorb)
413 CALL get_xtb_atom_param(xtb_parameter, nshell=nshell, lval=lval, nval=nval, occupation=occupation)
414 CALL get_xtb_atom_param(xtb_parameter, ngauss=ngauss)
415 CALL get_xtb_atom_param(xtb_parameter, kpoly=kpoly, kappa=kappa, hen=hen, zeta=zeta)
416 CALL get_xtb_atom_param(xtb_parameter, electronegativity=en, xgamma=xgamma, eta=eta, alpha=alpha, zneff=zneff)
417 wall = 0.0_dp
418 CALL get_xtb_atom_param(xtb_parameter, wall=wall)
419 have_sp = .false.
420 IF (sum(abs(wall)) /= 0.0_dp) have_sp = .true.
421
422 bb = " "
423 WRITE (unit=io_unit, fmt="(/,A,T67,A14)") " xTB parameters: ", trim(aname)
424 IF (defined) THEN
425 m = 5 - nshell
426 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.2)") "Effective core charge:", zeff
427 WRITE (unit=io_unit, fmt="(T16,A,T71,I10)") "Number of orbitals:", natorb
428 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5(A4,I1,I2,A1))") "Basis set [nl]", bb(1:8*m), &
429 (" [", nval(i), lval(i), "]", i=1, nshell)
430 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Slater Exponent", bb(1:8*m), (zeta(i), i=1, nshell)
431 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5I8)") "Ref. occupation", bb(1:8*m), (occupation(i), i=1, nshell)
432 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5I8)") "# of Gaussians", bb(1:8*m), (ngauss(i), i=1, nshell)
433 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Energy levels [au]", bb(1:8*m), (hen(i), i=1, nshell)
434 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Kpoly", bb(1:8*m), (kpoly(i), i=1, nshell)
435 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "Electronegativity", en
436 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "Mataga-Nishimoto constant (eta)", eta
437 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Mataga-Nishimoto scaling kappa", bb(1:8*m), &
438 (kappa(i), i=1, nshell)
439 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "3rd Order constant", xgamma
440 WRITE (unit=io_unit, fmt="(T16,A,T61,2F10.3)") "Repulsion potential [Z,alpha]", zneff, alpha
441 IF (have_sp) THEN
442 WRITE (unit=io_unit, fmt="(T16,A,T51,3F10.4)") "Spin Polarisation Wss sp pp", wall(1, 1), wall(1, 2), wall(2, 2)
443 WRITE (unit=io_unit, fmt="(T16,A,T51,3F10.4)") " Wsd pd dd", wall(1, 3), wall(2, 3), wall(3, 3)
444 END IF
445 ELSE
446 WRITE (unit=io_unit, fmt="(T55,A)") "Parameters are not defined"
447 END IF
448 CASE (2)
449 cpabort("gfn_type = 2 not yet defined")
450 END SELECT
451 END IF
452 CALL cp_print_key_finished_output(io_unit, logger, subsys_section, "PRINT%KINDS")
453 END IF
454
455 END SUBROUTINE write_xtb_atom_param
456
457END MODULE xtb_types
various routines to log and control the output. The idea is that decisions about where to log should ...
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer function, public cp_print_key_unit_nr(logger, basis_section, print_key_path, extension, middle_name, local, log_filename, ignore_should_output, file_form, file_position, file_action, file_status, do_backup, on_file, is_new_file, mpi_io, fout)
...
subroutine, public cp_print_key_finished_output(unit_nr, logger, basis_section, print_key_path, local, ignore_should_output, on_file, mpi_io)
should be called after you finish working with a unit obtained with cp_print_key_unit_nr,...
integer, parameter, public cp_p_file
integer function, public cp_print_key_should_output(iteration_info, basis_section, print_key_path, used_print_key, first_time)
returns what should be done with the given property if btest(res,cp_p_store) then the property should...
objects that represent the structure of input sections and the data contained in an input section
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
integer, parameter, public default_string_length
Definition kinds.F:57
Definition of the xTB parameter types.
Definition xtb_types.F:20
subroutine, public get_xtb_atom_param(xtb_parameter, symbol, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, wall, hen, zeta, xi, kappa0, alpg, occupation, ngauss, electronegativity, chmax, en, kqat2, kcn, kq)
...
Definition xtb_types.F:206
subroutine, public allocate_xtb_atom_param(xtb_parameter)
...
Definition xtb_types.F:101
subroutine, public set_xtb_atom_param(xtb_parameter, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, wall, hen, zeta, xi, kappa0, alpg, electronegativity, occupation, ngauss, chmax, en, kqat2, kcn, kq)
...
Definition xtb_types.F:313
subroutine, public deallocate_xtb_atom_param(xtb_parameter)
...
Definition xtb_types.F:154
subroutine, public write_xtb_atom_param(xtb_parameter, gfn_type, subsys_section)
...
Definition xtb_types.F:383
type of a logger, at the moment it contains just a print level starting at which level it should be l...