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