(git:295f299)
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 REAL(kind=dp), DIMENSION(5) :: kpoly = -1.0_dp
69 REAL(kind=dp), DIMENSION(5) :: kappa = -1.0_dp
70 REAL(kind=dp), DIMENSION(5) :: hen = -1.0_dp
71 REAL(kind=dp), DIMENSION(5) :: zeta = -1.0_dp
72 REAL(kind=dp), DIMENSION(3, 3) :: wall = -1.0_dp ! spin polarisation
73 ! gfn0 params
74 REAL(kind=dp) :: en = -1.0_dp
75 REAL(kind=dp) :: kqat2 = -1.0_dp
76 REAL(kind=dp), DIMENSION(5) :: kq = -1.0_dp
77 REAL(kind=dp), DIMENSION(5) :: kcn = -1.0_dp
78 ! charge equilibration parameter gfn0
79 REAL(kind=dp) :: xi = -1.0_dp
80 REAL(kind=dp) :: kappa0 = -1.0_dp
81 REAL(kind=dp) :: alpg = -1.0_dp
82 ! AO to shell pointer
83 INTEGER, DIMENSION(25) :: nao = -1, lao = -1
84 ! Upper limit of Mulliken charge
85 REAL(kind=dp) :: chmax = -1.0_dp
86 END TYPE xtb_atom_type
87
88! *** Public data types ***
89
92
93CONTAINS
94
95! **************************************************************************************************
96!> \brief ...
97!> \param xtb_parameter ...
98! **************************************************************************************************
99 SUBROUTINE allocate_xtb_atom_param(xtb_parameter)
100
101 TYPE(xtb_atom_type), POINTER :: xtb_parameter
102
103 IF (ASSOCIATED(xtb_parameter)) THEN
104 CALL deallocate_xtb_atom_param(xtb_parameter)
105 END IF
106
107 ALLOCATE (xtb_parameter)
108
109 xtb_parameter%defined = .false.
110 xtb_parameter%aname = ""
111 xtb_parameter%symbol = ""
112 xtb_parameter%typ = "NONE"
113 xtb_parameter%z = -1
114 xtb_parameter%zeff = -1.0_dp
115 xtb_parameter%natorb = 0
116 xtb_parameter%lmax = -1
117 xtb_parameter%rcut = 0.0_dp
118 xtb_parameter%rcov = 0.0_dp
119 xtb_parameter%electronegativity = 0.0_dp
120 xtb_parameter%kx = -100.0_dp
121 xtb_parameter%eta = 0.0_dp
122 xtb_parameter%xgamma = 0.0_dp
123 xtb_parameter%alpha = 0.0_dp
124 xtb_parameter%zneff = 0.0_dp
125 xtb_parameter%nshell = 0
126 xtb_parameter%nval = 0
127 xtb_parameter%lval = 0
128 xtb_parameter%occupation = 0
129 xtb_parameter%kpoly = 0.0_dp
130 xtb_parameter%kappa = 0.0_dp
131 xtb_parameter%wall = 0.0_dp
132 xtb_parameter%hen = 0.0_dp
133 xtb_parameter%zeta = 0.0_dp
134 xtb_parameter%en = 0.0_dp
135 xtb_parameter%kqat2 = 0.0_dp
136 xtb_parameter%kq = 0.0_dp
137 xtb_parameter%kcn = 0.0_dp
138 xtb_parameter%xi = 0.0_dp
139 xtb_parameter%kappa0 = 0.0_dp
140 xtb_parameter%alpg = 0.0_dp
141 xtb_parameter%nao = 0
142 xtb_parameter%lao = 0
143 xtb_parameter%chmax = 0.0_dp
144
145 END SUBROUTINE allocate_xtb_atom_param
146
147! **************************************************************************************************
148!> \brief ...
149!> \param xtb_parameter ...
150! **************************************************************************************************
151 SUBROUTINE deallocate_xtb_atom_param(xtb_parameter)
152
153 TYPE(xtb_atom_type), POINTER :: xtb_parameter
154
155 cpassert(ASSOCIATED(xtb_parameter))
156 DEALLOCATE (xtb_parameter)
157
158 END SUBROUTINE deallocate_xtb_atom_param
159
160! **************************************************************************************************
161!> \brief ...
162!> \param xtb_parameter ...
163!> \param symbol ...
164!> \param aname ...
165!> \param typ ...
166!> \param defined ...
167!> \param z ...
168!> \param zeff ...
169!> \param natorb ...
170!> \param lmax ...
171!> \param nao ...
172!> \param lao ...
173!> \param rcut ...
174!> \param rcov ...
175!> \param kx ...
176!> \param eta ...
177!> \param xgamma ...
178!> \param alpha ...
179!> \param zneff ...
180!> \param nshell ...
181!> \param nval ...
182!> \param lval ...
183!> \param kpoly ...
184!> \param kappa ...
185!> \param wall ...
186!> \param hen ...
187!> \param zeta ...
188!> \param xi ...
189!> \param kappa0 ...
190!> \param alpg ...
191!> \param occupation ...
192!> \param electronegativity ...
193!> \param chmax ...
194!> \param en ...
195!> \param kqat2 ...
196!> \param kcn ...
197!> \param kq ...
198! **************************************************************************************************
199 SUBROUTINE get_xtb_atom_param(xtb_parameter, symbol, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, &
200 rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, &
201 wall, hen, zeta, xi, kappa0, alpg, occupation, electronegativity, chmax, &
202 en, kqat2, kcn, kq)
203
204 TYPE(xtb_atom_type), POINTER :: xtb_parameter
205 CHARACTER(LEN=2), INTENT(OUT), OPTIONAL :: symbol
206 CHARACTER(LEN=default_string_length), &
207 INTENT(OUT), OPTIONAL :: aname, typ
208 LOGICAL, INTENT(OUT), OPTIONAL :: defined
209 INTEGER, INTENT(OUT), OPTIONAL :: z
210 REAL(kind=dp), INTENT(OUT), OPTIONAL :: zeff
211 INTEGER, INTENT(OUT), OPTIONAL :: natorb, lmax
212 INTEGER, DIMENSION(25), INTENT(OUT), OPTIONAL :: nao, lao
213 REAL(kind=dp), INTENT(OUT), OPTIONAL :: rcut, rcov, kx, eta, xgamma, alpha, zneff
214 INTEGER, INTENT(OUT), OPTIONAL :: nshell
215 INTEGER, DIMENSION(5), INTENT(OUT), OPTIONAL :: nval, lval
216 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: kpoly, kappa
217 REAL(kind=dp), DIMENSION(3, 3), INTENT(OUT), &
218 OPTIONAL :: wall
219 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: hen, zeta
220 REAL(kind=dp), INTENT(OUT), OPTIONAL :: xi, kappa0, alpg
221 INTEGER, DIMENSION(5), INTENT(OUT), OPTIONAL :: occupation
222 REAL(kind=dp), INTENT(OUT), OPTIONAL :: electronegativity, chmax, en, kqat2
223 REAL(kind=dp), DIMENSION(5), INTENT(OUT), OPTIONAL :: kcn, kq
224
225 cpassert(ASSOCIATED(xtb_parameter))
226
227 IF (PRESENT(symbol)) symbol = xtb_parameter%symbol
228 IF (PRESENT(aname)) aname = xtb_parameter%aname
229 IF (PRESENT(typ)) typ = xtb_parameter%typ
230 IF (PRESENT(defined)) defined = xtb_parameter%defined
231 IF (PRESENT(z)) z = xtb_parameter%z
232 IF (PRESENT(zeff)) zeff = xtb_parameter%zeff
233 IF (PRESENT(natorb)) natorb = xtb_parameter%natorb
234 IF (PRESENT(lmax)) lmax = xtb_parameter%lmax
235 IF (PRESENT(nao)) nao = xtb_parameter%nao
236 IF (PRESENT(lao)) lao = xtb_parameter%lao
237 !
238 IF (PRESENT(rcut)) rcut = xtb_parameter%rcut
239 IF (PRESENT(rcov)) rcov = xtb_parameter%rcov
240 IF (PRESENT(kx)) kx = xtb_parameter%kx
241 IF (PRESENT(electronegativity)) electronegativity = xtb_parameter%electronegativity
242 IF (PRESENT(eta)) eta = xtb_parameter%eta
243 IF (PRESENT(xgamma)) xgamma = xtb_parameter%xgamma
244 IF (PRESENT(alpha)) alpha = xtb_parameter%alpha
245 IF (PRESENT(zneff)) zneff = xtb_parameter%zneff
246 IF (PRESENT(nshell)) nshell = xtb_parameter%nshell
247 IF (PRESENT(nval)) nval = xtb_parameter%nval
248 IF (PRESENT(lval)) lval = xtb_parameter%lval
249 IF (PRESENT(occupation)) occupation = xtb_parameter%occupation
250 IF (PRESENT(kpoly)) kpoly = xtb_parameter%kpoly
251 IF (PRESENT(kappa)) kappa = xtb_parameter%kappa
252 IF (PRESENT(wall)) wall(1:3, 1:3) = xtb_parameter%wall(1:3, 1:3)
253 IF (PRESENT(hen)) hen = xtb_parameter%hen
254 IF (PRESENT(zeta)) zeta = xtb_parameter%zeta
255 IF (PRESENT(chmax)) chmax = xtb_parameter%chmax
256 IF (PRESENT(xi)) xi = xtb_parameter%xi
257 IF (PRESENT(kappa0)) kappa0 = xtb_parameter%kappa0
258 IF (PRESENT(alpg)) alpg = xtb_parameter%alpg
259 IF (PRESENT(en)) en = xtb_parameter%en
260 IF (PRESENT(kqat2)) kqat2 = xtb_parameter%kqat2
261 IF (PRESENT(kcn)) kcn = xtb_parameter%kcn
262 IF (PRESENT(kq)) kq = xtb_parameter%kq
263
264 END SUBROUTINE get_xtb_atom_param
265
266! **************************************************************************************************
267!> \brief ...
268!> \param xtb_parameter ...
269!> \param aname ...
270!> \param typ ...
271!> \param defined ...
272!> \param z ...
273!> \param zeff ...
274!> \param natorb ...
275!> \param lmax ...
276!> \param nao ...
277!> \param lao ...
278!> \param rcut ...
279!> \param rcov ...
280!> \param kx ...
281!> \param eta ...
282!> \param xgamma ...
283!> \param alpha ...
284!> \param zneff ...
285!> \param nshell ...
286!> \param nval ...
287!> \param lval ...
288!> \param kpoly ...
289!> \param kappa ...
290!> \param wall ...
291!> \param hen ...
292!> \param zeta ...
293!> \param xi ...
294!> \param kappa0 ...
295!> \param alpg ...
296!> \param electronegativity ...
297!> \param occupation ...
298!> \param chmax ...
299!> \param en ...
300!> \param kqat2 ...
301!> \param kcn ...
302!> \param kq ...
303! **************************************************************************************************
304 SUBROUTINE set_xtb_atom_param(xtb_parameter, aname, typ, defined, z, zeff, natorb, lmax, nao, lao, &
305 rcut, rcov, kx, eta, xgamma, alpha, zneff, nshell, nval, lval, kpoly, kappa, &
306 wall, hen, zeta, xi, kappa0, alpg, electronegativity, occupation, chmax, &
307 en, kqat2, kcn, kq)
308
309 TYPE(xtb_atom_type), POINTER :: xtb_parameter
310 CHARACTER(LEN=default_string_length), INTENT(IN), &
311 OPTIONAL :: aname, typ
312 LOGICAL, INTENT(IN), OPTIONAL :: defined
313 INTEGER, INTENT(IN), OPTIONAL :: z
314 REAL(kind=dp), INTENT(IN), OPTIONAL :: zeff
315 INTEGER, INTENT(IN), OPTIONAL :: natorb, lmax
316 INTEGER, DIMENSION(25), INTENT(IN), OPTIONAL :: nao, lao
317 REAL(kind=dp), INTENT(IN), OPTIONAL :: rcut, rcov, kx, eta, xgamma, alpha, zneff
318 INTEGER, INTENT(IN), OPTIONAL :: nshell
319 INTEGER, DIMENSION(5), INTENT(IN), OPTIONAL :: nval, lval
320 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: kpoly, kappa
321 REAL(kind=dp), DIMENSION(3, 3), INTENT(IN), &
322 OPTIONAL :: wall
323 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: hen, zeta
324 REAL(kind=dp), INTENT(IN), OPTIONAL :: xi, kappa0, alpg, electronegativity
325 INTEGER, DIMENSION(5), INTENT(IN), OPTIONAL :: occupation
326 REAL(kind=dp), INTENT(IN), OPTIONAL :: chmax, en, kqat2
327 REAL(kind=dp), DIMENSION(5), INTENT(IN), OPTIONAL :: kcn, kq
328
329 cpassert(ASSOCIATED(xtb_parameter))
330
331 IF (PRESENT(aname)) xtb_parameter%aname = aname
332 IF (PRESENT(typ)) xtb_parameter%typ = typ
333 IF (PRESENT(defined)) xtb_parameter%defined = defined
334 IF (PRESENT(z)) xtb_parameter%z = z
335 IF (PRESENT(zeff)) xtb_parameter%zeff = zeff
336 IF (PRESENT(natorb)) xtb_parameter%natorb = natorb
337 IF (PRESENT(lmax)) xtb_parameter%lmax = lmax
338 IF (PRESENT(nao)) xtb_parameter%nao = nao
339 IF (PRESENT(lao)) xtb_parameter%lao = lao
340 !
341 IF (PRESENT(rcut)) xtb_parameter%rcut = rcut
342 IF (PRESENT(rcov)) xtb_parameter%rcov = rcov
343 IF (PRESENT(kx)) xtb_parameter%kx = kx
344 IF (PRESENT(electronegativity)) xtb_parameter%electronegativity = electronegativity
345 IF (PRESENT(eta)) xtb_parameter%eta = eta
346 IF (PRESENT(xgamma)) xtb_parameter%xgamma = xgamma
347 IF (PRESENT(alpha)) xtb_parameter%alpha = alpha
348 IF (PRESENT(zneff)) xtb_parameter%zneff = zneff
349 IF (PRESENT(nshell)) xtb_parameter%nshell = nshell
350 IF (PRESENT(nval)) xtb_parameter%nval = nval
351 IF (PRESENT(lval)) xtb_parameter%lval = lval
352 IF (PRESENT(occupation)) xtb_parameter%occupation = occupation
353 IF (PRESENT(kpoly)) xtb_parameter%kpoly = kpoly
354 IF (PRESENT(kappa)) xtb_parameter%kappa = kappa
355 IF (PRESENT(wall)) xtb_parameter%wall(1:3, 1:3) = wall(1:3, 1:3)
356 IF (PRESENT(hen)) xtb_parameter%hen = hen
357 IF (PRESENT(zeta)) xtb_parameter%zeta = zeta
358 IF (PRESENT(chmax)) xtb_parameter%chmax = chmax
359 !
360 IF (PRESENT(xi)) xtb_parameter%xi = xi
361 IF (PRESENT(kappa0)) xtb_parameter%kappa0 = kappa0
362 IF (PRESENT(alpg)) xtb_parameter%alpg = alpg
363 IF (PRESENT(en)) xtb_parameter%en = en
364 IF (PRESENT(kqat2)) xtb_parameter%kqat2 = kqat2
365 IF (PRESENT(kcn)) xtb_parameter%kcn = kcn
366 IF (PRESENT(kq)) xtb_parameter%kq = kq
367
368 END SUBROUTINE set_xtb_atom_param
369
370! **************************************************************************************************
371!> \brief ...
372!> \param xtb_parameter ...
373!> \param gfn_type ...
374!> \param subsys_section ...
375! **************************************************************************************************
376 SUBROUTINE write_xtb_atom_param(xtb_parameter, gfn_type, subsys_section)
377
378 TYPE(xtb_atom_type), POINTER :: xtb_parameter
379 INTEGER, INTENT(IN) :: gfn_type
380 TYPE(section_vals_type), POINTER :: subsys_section
381
382 CHARACTER(LEN=default_string_length) :: aname, bb
383 INTEGER :: i, io_unit, m, natorb, nshell
384 INTEGER, DIMENSION(5) :: lval, nval, occupation
385 LOGICAL :: defined, have_sp
386 REAL(dp) :: zeff
387 REAL(kind=dp) :: alpha, en, eta, xgamma, zneff
388 REAL(kind=dp), DIMENSION(3, 3) :: wall
389 REAL(kind=dp), DIMENSION(5) :: hen, kappa, kpoly, zeta
390 TYPE(cp_logger_type), POINTER :: logger
391
392 NULLIFY (logger)
393 logger => cp_get_default_logger()
394 IF (ASSOCIATED(xtb_parameter) .AND. &
395 btest(cp_print_key_should_output(logger%iter_info, subsys_section, &
396 "PRINT%KINDS/POTENTIAL"), cp_p_file)) THEN
397
398 io_unit = cp_print_key_unit_nr(logger, subsys_section, "PRINT%KINDS", &
399 extension=".Log")
400
401 IF (io_unit > 0) THEN
402 SELECT CASE (gfn_type)
403 CASE (0)
404 cpabort("gfn_type = 0 missing code")
405 CASE (1)
406 CALL get_xtb_atom_param(xtb_parameter, aname=aname, defined=defined, zeff=zeff, natorb=natorb)
407 CALL get_xtb_atom_param(xtb_parameter, nshell=nshell, lval=lval, nval=nval, occupation=occupation)
408 CALL get_xtb_atom_param(xtb_parameter, kpoly=kpoly, kappa=kappa, hen=hen, zeta=zeta)
409 CALL get_xtb_atom_param(xtb_parameter, electronegativity=en, xgamma=xgamma, eta=eta, alpha=alpha, zneff=zneff)
410 wall = 0.0_dp
411 CALL get_xtb_atom_param(xtb_parameter, wall=wall)
412 have_sp = .false.
413 IF (sum(abs(wall)) /= 0.0_dp) have_sp = .true.
414
415 bb = " "
416 WRITE (unit=io_unit, fmt="(/,A,T67,A14)") " xTB parameters: ", trim(aname)
417 IF (defined) THEN
418 m = 5 - nshell
419 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.2)") "Effective core charge:", zeff
420 WRITE (unit=io_unit, fmt="(T16,A,T71,I10)") "Number of orbitals:", natorb
421 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5(A4,I1,I2,A1))") "Basis set [nl]", bb(1:8*m), &
422 (" [", nval(i), lval(i), "]", i=1, nshell)
423 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Slater Exponent", bb(1:8*m), (zeta(i), i=1, nshell)
424 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5I8)") "Ref. occupation", bb(1:8*m), (occupation(i), i=1, nshell)
425 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Energy levels [au]", bb(1:8*m), (hen(i), i=1, nshell)
426 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Kpoly", bb(1:8*m), (kpoly(i), i=1, nshell)
427 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "Electronegativity", en
428 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "Mataga-Nishimoto constant (eta)", eta
429 WRITE (unit=io_unit, fmt="(T16,A,T41,A,5F8.3)") "Mataga-Nishimoto scaling kappa", bb(1:8*m), &
430 (kappa(i), i=1, nshell)
431 WRITE (unit=io_unit, fmt="(T16,A,T71,F10.3)") "3rd Order constant", xgamma
432 WRITE (unit=io_unit, fmt="(T16,A,T61,2F10.3)") "Repulsion potential [Z,alpha]", zneff, alpha
433 IF (have_sp) THEN
434 WRITE (unit=io_unit, fmt="(T16,A,T51,3F10.4)") "Spin Polarisation Wss sp pp", wall(1, 1), wall(1, 2), wall(2, 2)
435 WRITE (unit=io_unit, fmt="(T16,A,T51,3F10.4)") " Wsd pd dd", wall(1, 3), wall(2, 3), wall(3, 3)
436 END IF
437 ELSE
438 WRITE (unit=io_unit, fmt="(T55,A)") "Parameters are not defined"
439 END IF
440 CASE (2)
441 cpabort("gfn_type = 2 not yet defined")
442 END SELECT
443 END IF
444 CALL cp_print_key_finished_output(io_unit, logger, subsys_section, "PRINT%KINDS")
445 END IF
446
447 END SUBROUTINE write_xtb_atom_param
448
449END MODULE xtb_types
450
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 allocate_xtb_atom_param(xtb_parameter)
...
Definition xtb_types.F:100
subroutine, public deallocate_xtb_atom_param(xtb_parameter)
...
Definition xtb_types.F:152
subroutine, public write_xtb_atom_param(xtb_parameter, gfn_type, subsys_section)
...
Definition xtb_types.F:377
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, chmax, en, kqat2, kcn, kq)
...
Definition xtb_types.F:308
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, electronegativity, chmax, en, kqat2, kcn, kq)
...
Definition xtb_types.F:203
type of a logger, at the moment it contains just a print level starting at which level it should be l...