(git:eeadd9f)
Loading...
Searching...
No Matches
input_cp2k_subsys.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 builds the subsystem section of the input
10!> \par History
11!> 10.2005 split input_cp2k [fawzi]
12!> \author teo & fawzi
13! **************************************************************************************************
15
16 USE bibliography, ONLY: goedecker1996, &
17 guidon2010, &
19 krack2005, &
22 USE cell_types, ONLY: &
32 USE cp_units, ONLY: cp_unit_to_cp2k
33 USE input_constants, ONLY: &
49 USE input_val_types, ONLY: char_t, &
50 integer_t, &
51 lchar_t, &
52 real_t
53 USE kinds, ONLY: dp
54 USE physcon, ONLY: bohr
55 USE string_utilities, ONLY: newline, &
56 s2a
57#include "./base/base_uses.f90"
58
59 IMPLICIT NONE
60 PRIVATE
61
62 LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .true.
63 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_subsys'
64
65 PUBLIC :: create_subsys_section, &
70
71CONTAINS
72
73! **************************************************************************************************
74!> \brief creates the cell section
75!> \param section ...
76!> \param periodic ...
77!> \author Ole Schuett
78! **************************************************************************************************
79 SUBROUTINE create_cell_section(section, periodic)
80 TYPE(section_type), POINTER :: section
81 INTEGER, INTENT(IN), OPTIONAL :: periodic
82
83 TYPE(section_type), POINTER :: subsection
84
85 cpassert(.NOT. ASSOCIATED(section))
86 CALL section_create(section, __location__, "CELL", &
87 description="Input parameters needed to set up the simulation cell. "// &
88 "Simple products and fractions combined with functions of a single "// &
89 "number can be used like 2/3, 0.3*COS(60) or -SQRT(3)/2. The functions "// &
90 "COS, EXP, LOG, LOG10, SIN, SQRT, and TAN are available.")
91 CALL create_cell_section_low(section, periodic)
92
93 NULLIFY (subsection)
94 CALL section_create(subsection, __location__, "CELL_REF", &
95 description="Input parameters needed to set up the reference cell. "// &
96 "This option can be used to keep the FFT grid fixed while "// &
97 "running a cell optimization or NpT molecular dynamics. "// &
98 "Check the &CELL section for further details.")
99 CALL create_cell_section_low(subsection, periodic)
100 CALL section_add_subsection(section, subsection)
101 CALL section_release(subsection)
102
103 END SUBROUTINE create_cell_section
104
105! **************************************************************************************************
106!> \brief populates cell section with keywords
107!> \param section ...
108!> \param periodic ...
109!> \author teo
110! **************************************************************************************************
111 SUBROUTINE create_cell_section_low(section, periodic)
112 TYPE(section_type), POINTER :: section
113 INTEGER, INTENT(IN), OPTIONAL :: periodic
114
115 INTEGER :: my_periodic
116 TYPE(keyword_type), POINTER :: keyword
117
118 my_periodic = use_perd_xyz
119 IF (PRESENT(periodic)) my_periodic = periodic
120
121 NULLIFY (keyword)
122 CALL keyword_create(keyword, __location__, name="A", &
123 description="Specify the Cartesian components for the cell vector A. "// &
124 "This defines the first column of the h matrix. "// &
125 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
126 usage="A 10.000 0.000 0.000", unit_str="angstrom", &
127 n_var=3, type_of_var=real_t, repeats=.false.)
128 CALL section_add_keyword(section, keyword)
129 CALL keyword_release(keyword)
130
131 CALL keyword_create(keyword, __location__, name="B", &
132 description="Specify the Cartesian components for the cell vector B. "// &
133 "This defines the second column of the h matrix. "// &
134 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
135 usage="B 0.000 10.000 0.000", unit_str="angstrom", &
136 n_var=3, type_of_var=real_t, repeats=.false.)
137 CALL section_add_keyword(section, keyword)
138 CALL keyword_release(keyword)
139
140 CALL keyword_create(keyword, __location__, name="C", &
141 description="Specify the Cartesian components for the cell vector C. "// &
142 "This defines the third column of the h matrix. "// &
143 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
144 usage="C 0.000 0.000 10.000", unit_str="angstrom", &
145 n_var=3, type_of_var=real_t, repeats=.false.)
146 CALL section_add_keyword(section, keyword)
147 CALL keyword_release(keyword)
148
149 CALL keyword_create(keyword, __location__, name="ABC", &
150 description="Specify the lengths of the cell vectors A, B, and C, which"// &
151 " defines the diagonal elements of h matrix for an orthorhombic cell."// &
152 " For non-orthorhombic cells it is possible either to specify the angles "// &
153 "ALPHA, BETA, GAMMA via ALPHA_BETA_GAMMA keyword or alternatively use the keywords "// &
154 "A, B, and C. The convention is that A lies along the X-axis, B is in the XY plane. "// &
155 "Ignored if CELL_FILE_NAME is used.", &
156 usage="ABC 10.000 10.000 10.000", unit_str="angstrom", &
157 n_var=3, type_of_var=real_t, repeats=.false.)
158 CALL section_add_keyword(section, keyword)
159 CALL keyword_release(keyword)
160
161 CALL keyword_create(keyword, __location__, name="ALPHA_BETA_GAMMA", &
162 variants=["ANGLES"], &
163 description="Specify the angles between the vectors A, B and C when using the ABC keyword. "// &
164 "The convention is that A lies along the X-axis, B is in the XY plane. "// &
165 "ALPHA is the angle between B and C, BETA is the angle between A and C and "// &
166 "GAMMA the angle between A and B.", &
167 usage="ALPHA_BETA_GAMMA [deg] 90.0 90.0 120.0", unit_str="deg", &
168 n_var=3, default_r_vals=[cp_unit_to_cp2k(value=90.0_dp, unit_str="deg"), &
169 cp_unit_to_cp2k(value=90.0_dp, unit_str="deg"), &
170 cp_unit_to_cp2k(value=90.0_dp, unit_str="deg")], &
171 repeats=.false.)
172 CALL section_add_keyword(section, keyword)
173 CALL keyword_release(keyword)
174
175 CALL keyword_create(keyword, __location__, name="CELL_FILE_NAME", &
176 description="Possibility to read the cell from an external file ", &
177 repeats=.false., usage="CELL_FILE_NAME <CHARACTER>", &
178 type_of_var=lchar_t)
179 CALL section_add_keyword(section, keyword)
180 CALL keyword_release(keyword)
181
182 CALL keyword_create(keyword, __location__, name="CELL_FILE_FORMAT", &
183 description="Specify the format of the cell file (if used)", &
184 usage="CELL_FILE_FORMAT (CP2K|CIF|XSC)", &
185 enum_c_vals=s2a("CP2K", "CIF", "XSC"), &
186 enum_i_vals=[do_cell_cp2k, do_cell_cif, do_cell_xsc], &
187 enum_desc=s2a("Cell info in the CP2K native format.", &
188 "Cell info from CIF file.", &
189 "Cell info in the XSC format (NAMD)"), &
190 default_i_val=do_cell_cp2k)
191 CALL section_add_keyword(section, keyword)
192 CALL keyword_release(keyword)
193
194 CALL keyword_create(keyword, __location__, name="PERIODIC", &
195 description="Specify the directions for which periodic boundary conditions (PBC) will be applied. "// &
196 "Important notice: This applies to the generation of the pair lists as well as to the "// &
197 "application of the PBCs to positions. "// &
198 "See the POISSON section to specify the periodicity used for the electrostatics. "// &
199 "Typically the settings should be the same.", &
200 usage="PERIODIC (x|y|z|xy|xz|yz|xyz|none)", &
201 enum_c_vals=s2a("x", "y", "z", "xy", "xz", "yz", "xyz", "none"), &
202 enum_i_vals=[use_perd_x, use_perd_y, use_perd_z, &
205 default_i_val=my_periodic)
206 CALL section_add_keyword(section, keyword)
207 CALL keyword_release(keyword)
208
209 CALL keyword_create(keyword, __location__, name="MULTIPLE_UNIT_CELL", &
210 description="Specifies the numbers of repetition in space (X, Y, Z) of the defined cell, "// &
211 "assuming it as a unit cell. This keyword affects only the CELL specification. The same keyword "// &
212 "in SUBSYS%TOPOLOGY%MULTIPLE_UNIT_CELL should be modified in order to affect the coordinates "// &
213 "specification.", usage="MULTIPLE_UNIT_CELL 1 1 1", &
214 n_var=3, default_i_vals=[1, 1, 1], repeats=.false.)
215 CALL section_add_keyword(section, keyword)
216 CALL keyword_release(keyword)
217
218 CALL keyword_create( &
219 keyword, __location__, name="SYMMETRY", &
220 description="Imposes an initial cell symmetry.", &
221 usage="SYMMETRY monoclinic", &
222 enum_desc=s2a("No cell symmetry", &
223 "Triclinic (a &ne; b &ne; c &ne; a, &alpha; &ne; &beta; &ne; &gamma; &ne; &alpha; &ne; 90&deg;)", &
224 "Monoclinic (a &ne; b &ne; c, &alpha; = &gamma; = 90&deg;, &beta; &ne; 90&deg;)", &
225 "Monoclinic (a = b &ne; c, &alpha; = &beta; = 90&deg;, &gamma; &ne; 90&deg;)", &
226 "Orthorhombic (a &ne; b &ne; c, &alpha; = &beta; = &gamma; = 90&deg;)", &
227 "Tetragonal (a = b &ne; c, &alpha; = &beta; = &gamma; = 90&deg;)", &
228 "Tetragonal (a = c &ne; b, &alpha; = &beta; = &gamma; = 90&deg;)", &
229 "Tetragonal (a &ne; b = c, &alpha; = &beta; = &gamma; = 90&deg;)", &
230 "Tetragonal (alias for TETRAGONAL_AB)", &
231 "Rhombohedral (a = b = c, &alpha; = &beta; = &gamma; &ne; 90&deg;)", &
232 "Hexagonal (alias for HEXAGONAL_GAMMA_60)", &
233 "Hexagonal (a = b &ne; c, &alpha; = &beta; = 90&deg;, &gamma; = 60&deg;)", &
234 "Hexagonal (a = b &ne; c, &alpha; = &beta; = 90&deg;, &gamma; = 120&deg;)", &
235 "Cubic (a = b = c, &alpha; = &beta; = &gamma; = 90&deg;)"), &
236 enum_c_vals=s2a("NONE", "TRICLINIC", "MONOCLINIC", "MONOCLINIC_GAMMA_AB", "ORTHORHOMBIC", &
237 "TETRAGONAL_AB", "TETRAGONAL_AC", "TETRAGONAL_BC", "TETRAGONAL", "RHOMBOHEDRAL", &
238 "HEXAGONAL", "HEXAGONAL_GAMMA_60", "HEXAGONAL_GAMMA_120", "CUBIC"), &
243 default_i_val=cell_sym_none)
244 CALL section_add_keyword(section, keyword)
245 CALL keyword_release(keyword)
246
247 END SUBROUTINE create_cell_section_low
248
249! **************************************************************************************************
250!> \brief Creates the random number restart section
251!> \param section the section to create
252!> \author teo
253! **************************************************************************************************
254 SUBROUTINE create_rng_section(section)
255 TYPE(section_type), POINTER :: section
256
257 TYPE(keyword_type), POINTER :: keyword
258
259 cpassert(.NOT. ASSOCIATED(section))
260 CALL section_create(section, __location__, name="RNG_INIT", &
261 description="Information to initialize the parallel random number generator streams", &
262 n_keywords=1, n_subsections=0, repeats=.false.)
263 NULLIFY (keyword)
264
265 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
266 description="Specify an initial RNG stream record", repeats=.true., &
267 usage="{RNG record string}", type_of_var=lchar_t)
268 CALL section_add_keyword(section, keyword)
269 CALL keyword_release(keyword)
270
271 END SUBROUTINE create_rng_section
272
273! **************************************************************************************************
274!> \brief creates the structure of a subsys, i.e. a full set of
275!> atoms+mol+bounds+cell
276!> \param section the section to create
277!> \author fawzi
278! **************************************************************************************************
279 SUBROUTINE create_subsys_section(section)
280 TYPE(section_type), POINTER :: section
281
282 TYPE(keyword_type), POINTER :: keyword
283 TYPE(section_type), POINTER :: subsection
284
285 cpassert(.NOT. ASSOCIATED(section))
286 CALL section_create(section, __location__, name="subsys", &
287 description="a subsystem: coordinates, topology, molecules and cell", &
288 n_keywords=1, n_subsections=9, repeats=.false.)
289
290 NULLIFY (keyword)
291 CALL keyword_create(keyword, __location__, name="SEED", &
292 description="Initial seed for the (pseudo)random number generator for the "// &
293 "Wiener process employed by the Langevin dynamics. Exactly 1 or 6 positive "// &
294 "integer values are expected. A single value is replicated to fill up the "// &
295 "full seed array with 6 numbers.", &
296 n_var=-1, &
297 type_of_var=integer_t, &
298 usage="SEED {INTEGER} .. {INTEGER}", &
299 default_i_vals=[12345])
300 CALL section_add_keyword(section, keyword)
301 CALL keyword_release(keyword)
302
303 NULLIFY (subsection)
304
305 CALL create_rng_section(subsection)
306 CALL section_add_subsection(section, subsection)
307 CALL section_release(subsection)
308
309 CALL create_cell_section(subsection)
310 CALL section_add_subsection(section, subsection)
311 CALL section_release(subsection)
312
313 CALL create_coord_section(subsection)
314 CALL section_add_subsection(section, subsection)
315 CALL section_release(subsection)
316
317 CALL create_velocity_section(subsection)
318 CALL section_add_subsection(section, subsection)
319 CALL section_release(subsection)
320
321 CALL create_kind_section(subsection)
322 CALL section_add_subsection(section, subsection)
323 CALL section_release(subsection)
324
325 CALL create_topology_section(subsection)
326 CALL section_add_subsection(section, subsection)
327 CALL section_release(subsection)
328
329 CALL create_colvar_section(section=subsection)
330 CALL section_add_subsection(section, subsection)
331 CALL section_release(subsection)
332
333 CALL create_multipole_section(subsection)
334 CALL section_add_subsection(section, subsection)
335 CALL section_release(subsection)
336
337 CALL create_shell_coord_section(subsection)
338 CALL section_add_subsection(section, subsection)
339 CALL section_release(subsection)
340
341 CALL create_shell_vel_section(subsection)
342 CALL section_add_subsection(section, subsection)
343 CALL section_release(subsection)
344 CALL create_core_coord_section(subsection)
345 CALL section_add_subsection(section, subsection)
346 CALL section_release(subsection)
347
348 CALL create_core_vel_section(subsection)
349 CALL section_add_subsection(section, subsection)
350 CALL section_release(subsection)
351
352 CALL create_subsys_print_section(subsection)
353 CALL section_add_subsection(section, subsection)
354 CALL section_release(subsection)
355
356 END SUBROUTINE create_subsys_section
357
358! **************************************************************************************************
359!> \brief Creates the subsys print section
360!> \param section the section to create
361!> \author teo
362! **************************************************************************************************
363 SUBROUTINE create_subsys_print_section(section)
364 TYPE(section_type), POINTER :: section
365
366 TYPE(keyword_type), POINTER :: keyword
367 TYPE(section_type), POINTER :: print_key
368
369 NULLIFY (print_key, keyword)
370 cpassert(.NOT. ASSOCIATED(section))
371 CALL section_create(section, __location__, name="print", &
372 description="Controls printings related to the subsys", &
373 n_keywords=0, n_subsections=9, repeats=.false.)
374
375 CALL cp_print_key_section_create(print_key, __location__, "atomic_coordinates", &
376 description="controls the output of the atomic coordinates when setting up the"// &
377 " force environment. For printing coordinates during MD or GEO refer to the keyword"// &
378 " trajectory.", unit_str="angstrom", &
379 print_level=medium_print_level, filename="__STD_OUT__")
380 CALL section_add_subsection(section, print_key)
381 CALL section_release(print_key)
382
383 CALL create_structure_data_section(print_key)
384 CALL section_add_subsection(section, print_key)
385 CALL section_release(print_key)
386
387 CALL cp_print_key_section_create(print_key, __location__, "INTERATOMIC_DISTANCES", &
388 description="Controls the printout of the interatomic distances when setting up the "// &
389 "force environment", unit_str="angstrom", &
390 print_level=debug_print_level, filename="__STD_OUT__")
391 CALL keyword_create(keyword, __location__, name="CHECK_INTERATOMIC_DISTANCES", &
392 description="Minimum allowed distance between two atoms. "// &
393 "A warning is printed, if a smaller interatomic distance is encountered. "// &
394 "The check is disabled for the threshold value 0 which is the default "// &
395 "for systems with more than 2000 atoms (otherwise 0.5 A). "// &
396 "The run is aborted, if an interatomic distance is smaller than the absolute "// &
397 "value of a negative threshold value.", &
398 default_r_val=0.5_dp*bohr, unit_str="angstrom")
399 CALL section_add_keyword(print_key, keyword)
400 CALL keyword_release(keyword)
401 CALL section_add_subsection(section, print_key)
402 CALL section_release(print_key)
403
404 CALL cp_print_key_section_create(print_key, __location__, "topology_info", description= &
405 "controls the printing of information in the topology settings", &
406 print_level=high_print_level, filename="__STD_OUT__")
407 CALL keyword_create(keyword, __location__, name="xtl_info", &
408 description="Prints information when parsing XTL files.", &
409 default_l_val=.false., lone_keyword_l_val=.true.)
410 CALL section_add_keyword(print_key, keyword)
411 CALL keyword_release(keyword)
412 CALL keyword_create(keyword, __location__, name="cif_info", &
413 description="Prints information when parsing CIF files.", &
414 default_l_val=.false., lone_keyword_l_val=.true.)
415 CALL section_add_keyword(print_key, keyword)
416 CALL keyword_release(keyword)
417 CALL keyword_create(keyword, __location__, name="pdb_info", &
418 description="Prints information when parsing PDB files.", &
419 default_l_val=.false., lone_keyword_l_val=.true.)
420 CALL section_add_keyword(print_key, keyword)
421 CALL keyword_release(keyword)
422 CALL keyword_create(keyword, __location__, name="xyz_info", &
423 description="Prints information when parsing XYZ files.", &
424 default_l_val=.false., lone_keyword_l_val=.true.)
425 CALL section_add_keyword(print_key, keyword)
426 CALL keyword_release(keyword)
427 CALL keyword_create(keyword, __location__, name="psf_info", &
428 description="Prints information when parsing PSF files.", &
429 default_l_val=.false., lone_keyword_l_val=.true.)
430 CALL section_add_keyword(print_key, keyword)
431 CALL keyword_release(keyword)
432 CALL keyword_create(keyword, __location__, name="amber_info", &
433 description="Prints information when parsing ABER topology files.", &
434 default_l_val=.false., lone_keyword_l_val=.true.)
435 CALL section_add_keyword(print_key, keyword)
436 CALL keyword_release(keyword)
437 CALL keyword_create(keyword, __location__, name="g96_info", &
438 description="Prints information when parsing G96 files.", &
439 default_l_val=.false., lone_keyword_l_val=.true.)
440 CALL section_add_keyword(print_key, keyword)
441 CALL keyword_release(keyword)
442 CALL keyword_create(keyword, __location__, name="crd_info", &
443 description="Prints information when parsing CRD files.", &
444 default_l_val=.false., lone_keyword_l_val=.true.)
445 CALL section_add_keyword(print_key, keyword)
446 CALL keyword_release(keyword)
447 CALL keyword_create(keyword, __location__, name="gtop_info", &
448 description="Prints information when parsing GROMOS topology files.", &
449 default_l_val=.false., lone_keyword_l_val=.true.)
450 CALL section_add_keyword(print_key, keyword)
451 CALL keyword_release(keyword)
452 CALL keyword_create(keyword, __location__, name="util_info", &
453 description="Prints information regarding topology utilities", &
454 default_l_val=.false., lone_keyword_l_val=.true.)
455 CALL section_add_keyword(print_key, keyword)
456 CALL keyword_release(keyword)
457 CALL keyword_create(keyword, __location__, name="generate_info", &
458 description="Prints information regarding topology generation", &
459 default_l_val=.false., lone_keyword_l_val=.true.)
460 CALL section_add_keyword(print_key, keyword)
461 CALL keyword_release(keyword)
462 CALL section_add_subsection(section, print_key)
463 CALL section_release(print_key)
464
465 CALL cp_print_key_section_create(print_key, __location__, "cell", &
466 description="controls the output of the cell parameters", &
467 print_level=medium_print_level, filename="__STD_OUT__", &
468 unit_str="angstrom")
469 CALL section_add_subsection(section, print_key)
470 CALL section_release(print_key)
471
472 CALL cp_print_key_section_create(print_key, __location__, "kinds", &
473 description="controls the output of information on the kinds", &
474 print_level=medium_print_level, filename="__STD_OUT__")
475 CALL keyword_create(keyword, __location__, name="potential", &
476 description="If the printkey is activated controls the printing of the"// &
477 " fist_potential, gth_potential, sgp_potential or all electron"// &
478 " potential information", &
479 default_l_val=.false., lone_keyword_l_val=.true.)
480 CALL section_add_keyword(print_key, keyword)
481 CALL keyword_release(keyword)
482 CALL keyword_create(keyword, __location__, name="basis_set", &
483 description="If the printkey is activated controls the printing of basis set information", &
484 default_l_val=.false., lone_keyword_l_val=.true.)
485 CALL section_add_keyword(print_key, keyword)
486 CALL keyword_release(keyword)
487 CALL keyword_create(keyword, __location__, name="se_parameters", &
488 description="If the printkey is activated controls the printing of the semi-empirical parameters.", &
489 default_l_val=.false., lone_keyword_l_val=.true.)
490 CALL section_add_keyword(print_key, keyword)
491 CALL keyword_release(keyword)
492 CALL section_add_subsection(section, print_key)
493 CALL section_release(print_key)
494
495 CALL cp_print_key_section_create(print_key, __location__, "SYMMETRY", &
496 description="controls the output of symmetry information", &
497 print_level=debug_print_level + 1, filename="__STD_OUT__")
498 CALL keyword_create(keyword, __location__, name="MOLECULE", &
499 description="Assume the system is an isolated molecule", &
500 default_l_val=.false., lone_keyword_l_val=.true.)
501 CALL section_add_keyword(print_key, keyword)
502 CALL keyword_release(keyword)
503 CALL keyword_create(keyword, __location__, name="EPS_GEO", &
504 description="Accuracy required for symmetry detection", &
505 default_r_val=1.0e-4_dp)
506 CALL section_add_keyword(print_key, keyword)
507 CALL keyword_release(keyword)
508 CALL keyword_create(keyword, __location__, name="STANDARD_ORIENTATION", &
509 description="Print molecular coordinates in standard orientation", &
510 default_l_val=.false., lone_keyword_l_val=.true.)
511 CALL section_add_keyword(print_key, keyword)
512 CALL keyword_release(keyword)
513 CALL keyword_create(keyword, __location__, name="INERTIA", &
514 description="Print molecular inertia tensor", &
515 default_l_val=.false., lone_keyword_l_val=.true.)
516 CALL section_add_keyword(print_key, keyword)
517 CALL keyword_release(keyword)
518 CALL keyword_create(keyword, __location__, name="SYMMETRY_ELEMENTS", &
519 description="Print symmetry elements", &
520 default_l_val=.false., lone_keyword_l_val=.true.)
521 CALL section_add_keyword(print_key, keyword)
522 CALL keyword_release(keyword)
523 CALL keyword_create(keyword, __location__, name="ALL", &
524 description="Print all symmetry information", &
525 default_l_val=.false., lone_keyword_l_val=.true.)
526 CALL section_add_keyword(print_key, keyword)
527 CALL keyword_release(keyword)
528 CALL keyword_create(keyword, __location__, name="ROTATION_MATRICES", &
529 description="All the rotation matrices of the point group", &
530 default_l_val=.false.)
531 CALL section_add_keyword(print_key, keyword)
532 CALL keyword_release(keyword)
533 CALL keyword_create(keyword, __location__, name="CHECK_SYMMETRY", &
534 description="Check if calculated symmetry has expected value."// &
535 " Use either Schoenfliess or Hermann-Maugin symbols", &
536 default_c_val="NONE")
537 CALL section_add_keyword(print_key, keyword)
538 CALL keyword_release(keyword)
539 CALL section_add_subsection(section, print_key)
540 CALL section_release(print_key)
541
542 CALL cp_print_key_section_create(print_key, __location__, "molecules", &
543 description="controls the output of information on the molecules", &
544 print_level=medium_print_level, filename="__STD_OUT__")
545 CALL section_add_subsection(section, print_key)
546 CALL section_release(print_key)
547
548 CALL cp_print_key_section_create(print_key, __location__, "radii", &
549 description="controls the output of radii information", unit_str="angstrom", &
550 print_level=high_print_level, filename="__STD_OUT__")
551
552 CALL keyword_create(keyword, __location__, name="core_charges_radii", &
553 description="If the printkey is activated controls the printing of the radii of the core charges", &
554 default_l_val=.true., lone_keyword_l_val=.true.)
555 CALL section_add_keyword(print_key, keyword)
556 CALL keyword_release(keyword)
557
558 CALL keyword_create(keyword, __location__, name="pgf_radii", &
559 description="If the printkey is activated controls the printing of the core gaussian radii", &
560 default_l_val=.true., lone_keyword_l_val=.true.)
561 CALL section_add_keyword(print_key, keyword)
562 CALL keyword_release(keyword)
563
564 CALL keyword_create(keyword, __location__, name="set_radii", &
565 description="If the printkey is activated controls the printing of the set_radii", &
566 default_l_val=.true., lone_keyword_l_val=.true.)
567 CALL section_add_keyword(print_key, keyword)
568 CALL keyword_release(keyword)
569
570 CALL keyword_create(keyword, __location__, name="kind_radii", &
571 description="If the printkey is activated controls the printing of the kind_radii", &
572 default_l_val=.true., lone_keyword_l_val=.true.)
573 CALL section_add_keyword(print_key, keyword)
574 CALL keyword_release(keyword)
575
576 CALL keyword_create(keyword, __location__, name="core_charge_radii", &
577 description="If the printkey is activated controls the printing of the core_charge_radii", &
578 default_l_val=.true., lone_keyword_l_val=.true.)
579 CALL section_add_keyword(print_key, keyword)
580 CALL keyword_release(keyword)
581
582 CALL keyword_create(keyword, __location__, name="ppl_radii", &
583 description="If the printkey is activated controls the printing of the "// &
584 "pseudo potential local radii", &
585 default_l_val=.true., lone_keyword_l_val=.true.)
586 CALL section_add_keyword(print_key, keyword)
587 CALL keyword_release(keyword)
588
589 CALL keyword_create(keyword, __location__, name="ppnl_radii", &
590 description="If the printkey is activated controls the printing of the "// &
591 "pseudo potential non local radii", &
592 default_l_val=.true., lone_keyword_l_val=.true.)
593 CALL section_add_keyword(print_key, keyword)
594 CALL keyword_release(keyword)
595
596 CALL keyword_create(keyword, __location__, name="gapw_prj_radii", &
597 description="If the printkey is activated controls the printing of the gapw projector radii", &
598 default_l_val=.true., lone_keyword_l_val=.true.)
599 CALL section_add_keyword(print_key, keyword)
600 CALL keyword_release(keyword)
601
602 CALL section_add_subsection(section, print_key)
603 CALL section_release(print_key)
604
605 END SUBROUTINE create_subsys_print_section
606
607! **************************************************************************************************
608!> \brief Creates the multipole section
609!> \param section the section to create
610!> \author teo
611! **************************************************************************************************
612 SUBROUTINE create_multipole_section(section)
613 TYPE(section_type), POINTER :: section
614
615 TYPE(keyword_type), POINTER :: keyword
616 TYPE(section_type), POINTER :: subsection
617
618 cpassert(.NOT. ASSOCIATED(section))
619 CALL section_create(section, __location__, name="multipoles", &
620 description="Specifies the dipoles and quadrupoles for particles.", &
621 n_keywords=1, n_subsections=0, repeats=.false.)
622
623 NULLIFY (keyword, subsection)
624 CALL section_create(subsection, __location__, name="dipoles", &
625 description="Specifies the dipoles of the particles.", &
626 n_keywords=1, n_subsections=0, repeats=.false.)
627 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
628 description="The dipole components for each atom in the format: "// &
629 "$D_x \ D_y \ D_z$", &
630 repeats=.true., usage="{Real} {Real} {Real}", &
631 type_of_var=real_t, n_var=3)
632 CALL section_add_keyword(subsection, keyword)
633 CALL keyword_release(keyword)
634 CALL section_add_subsection(section, subsection)
635 CALL section_release(subsection)
636
637 CALL section_create(subsection, __location__, name="quadrupoles", &
638 description="Specifies the quadrupoles of the particles.", &
639 n_keywords=1, n_subsections=0, repeats=.false.)
640 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
641 description="The quadrupole components for each atom in the format: "// &
642 "$Q_{xx} \ Q_{xy} \ Q_{xz} \ Q_{yy} \ Q_{yz} \ Q_{zz}$", &
643 repeats=.true., usage="{Real} {Real} {Real} {Real} {Real} {Real}", &
644 type_of_var=real_t, n_var=6)
645 CALL section_add_keyword(subsection, keyword)
646 CALL keyword_release(keyword)
647 CALL section_add_subsection(section, subsection)
648 CALL section_release(subsection)
649
650 END SUBROUTINE create_multipole_section
651
652! **************************************************************************************************
653!> \brief creates structure data section for output.. both subsys (for initialization)
654!> and motion section..
655!> \param print_key ...
656! **************************************************************************************************
657 SUBROUTINE create_structure_data_section(print_key)
658 TYPE(section_type), POINTER :: print_key
659
660 TYPE(keyword_type), POINTER :: keyword
661
662 cpassert(.NOT. ASSOCIATED(print_key))
663
664 NULLIFY (keyword)
665
666 CALL cp_print_key_section_create(print_key, __location__, name="STRUCTURE_DATA", &
667 description="Request the printing of special structure data during a structure "// &
668 "optimization (in MOTION%PRINT) or when setting up a subsys (in SUBSYS%PRINT).", &
669 print_level=high_print_level, filename="__STD_OUT__", unit_str="angstrom")
670
671 CALL keyword_create(keyword, __location__, name="POSITION", variants=["POS"], &
672 description="Print the position vectors in Cartesian coordinates of the atoms specified "// &
673 "by a list of their indices", &
674 usage="POSITION {integer} {integer} {integer}..{integer}", n_var=-1, repeats=.true., &
675 type_of_var=integer_t)
676 CALL section_add_keyword(print_key, keyword)
677 CALL keyword_release(keyword)
678
679 CALL keyword_create(keyword, __location__, name="POSITION_SCALED", variants=["POS_SCALED"], &
680 description="Print the position vectors in scaled coordinates of the atoms specified "// &
681 "by a list of their indices", &
682 usage="POSITION_SCALED {integer} {integer} {integer}..{integer}", n_var=-1, repeats=.true., &
683 type_of_var=integer_t)
684 CALL section_add_keyword(print_key, keyword)
685 CALL keyword_release(keyword)
686
687 CALL keyword_create(keyword, __location__, name="DISTANCE", variants=["DIS"], &
688 description="Print the distance between the atoms a and b specified by their indices", &
689 usage="DISTANCE {integer} {integer}", n_var=2, repeats=.true., &
690 type_of_var=integer_t)
691 CALL section_add_keyword(print_key, keyword)
692 CALL keyword_release(keyword)
693
694 CALL keyword_create(keyword, __location__, name="ANGLE", variants=["ANG"], &
695 description="Print the angle formed by the atoms specified by their indices", &
696 usage="ANGLE {integer} {integer} {integer}", n_var=3, repeats=.true., &
697 type_of_var=integer_t)
698 CALL section_add_keyword(print_key, keyword)
699 CALL keyword_release(keyword)
700
701 CALL keyword_create(keyword, __location__, name="DIHEDRAL_ANGLE", variants=s2a("DIHEDRAL", "DIH"), &
702 description="Print the dihedral angle between the planes defined by the atoms (a,b,c) and "// &
703 "the atoms (b,c,d) specified by their indices", &
704 usage="DIHEDRAL_ANGLE {integer} {integer} {integer} {integer}", n_var=4, &
705 repeats=.true., type_of_var=integer_t)
706 CALL section_add_keyword(print_key, keyword)
707 CALL keyword_release(keyword)
708
709 END SUBROUTINE create_structure_data_section
710
711! **************************************************************************************************
712!> \brief Creates the velocity section
713!> \param section the section to create
714!> \author teo
715! **************************************************************************************************
716 SUBROUTINE create_velocity_section(section)
717 TYPE(section_type), POINTER :: section
718
719 TYPE(keyword_type), POINTER :: keyword
720
721 cpassert(.NOT. ASSOCIATED(section))
722 CALL section_create(section, __location__, name="velocity", &
723 description="The velocities for simple systems or "// &
724 "the centroid mode in PI runs, xyz format by default", &
725 n_keywords=1, n_subsections=0, repeats=.false.)
726 NULLIFY (keyword)
727 CALL keyword_create(keyword, __location__, name="PINT_UNIT", &
728 description="Specify the units of measurement for the velocities "// &
729 "(currently works only for the path integral code). "// &
730 "All available CP2K units can be used.", &
731 usage="PINT_UNIT angstrom*au_t^-1", &
732 default_c_val="bohr*au_t^-1")
733 CALL section_add_keyword(section, keyword)
734 CALL keyword_release(keyword)
735
736 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
737 description="The atomic velocities in the format: "// &
738 "$ v_x \ v_y \ v_z$ "// &
739 "The same order as for the atomic coordinates is assumed.", &
740 repeats=.true., usage="{Real} {Real} {Real}", &
741 type_of_var=real_t, n_var=3)
742 CALL section_add_keyword(section, keyword)
743 CALL keyword_release(keyword)
744
745 END SUBROUTINE create_velocity_section
746
747! **************************************************************************************************
748!> \brief Creates the shell velocity section
749!> \param section the section to create
750!> \author teo
751! **************************************************************************************************
752 SUBROUTINE create_shell_vel_section(section)
753 TYPE(section_type), POINTER :: section
754
755 TYPE(keyword_type), POINTER :: keyword
756
757 cpassert(.NOT. ASSOCIATED(section))
758 CALL section_create(section, __location__, name="shell_velocity", &
759 description="The velocities of shells for shell-model potentials, "// &
760 "in xyz format ", &
761 n_keywords=1, n_subsections=0, repeats=.false.)
762 NULLIFY (keyword)
763
764 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
765 description="The shell particle velocities in the format: "// &
766 "$v_x \ v_y \ v_z$ "// &
767 "The same order as for the shell particle coordinates is assumed.", &
768 repeats=.true., usage="{Real} {Real} {Real}", &
769 type_of_var=real_t, n_var=3)
770 CALL section_add_keyword(section, keyword)
771 CALL keyword_release(keyword)
772
773 END SUBROUTINE create_shell_vel_section
774
775! **************************************************************************************************
776!> \brief Creates the shell velocity section
777!> \param section the section to create
778!> \author teo
779! **************************************************************************************************
780 SUBROUTINE create_core_vel_section(section)
781 TYPE(section_type), POINTER :: section
782
783 TYPE(keyword_type), POINTER :: keyword
784
785 cpassert(.NOT. ASSOCIATED(section))
786 CALL section_create(section, __location__, name="core_velocity", &
787 description="The velocities of cores for shell-model potentials, "// &
788 "in xyz format ", &
789 n_keywords=1, n_subsections=0, repeats=.false.)
790 NULLIFY (keyword)
791
792 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
793 description="The core particle velocities in the format: "// &
794 "$v_x \ v_y \ v_z$ "// &
795 "The same order as for the core particle coordinates is assumed.", &
796 repeats=.true., usage="{Real} {Real} {Real}", &
797 type_of_var=real_t, n_var=3)
798 CALL section_add_keyword(section, keyword)
799 CALL keyword_release(keyword)
800
801 END SUBROUTINE create_core_vel_section
802
803! **************************************************************************************************
804!> \brief Creates the &POTENTIAL section
805!> \param section the section to create
806!> \author teo
807! **************************************************************************************************
808 SUBROUTINE create_potential_section(section)
809 TYPE(section_type), POINTER :: section
810
811 TYPE(keyword_type), POINTER :: keyword
812
813 CALL section_create(section, __location__, name="potential", &
814 description="Section used to specify Potentials.", &
815 n_keywords=1, n_subsections=0, repeats=.false.)
816 NULLIFY (keyword)
817 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
818 description="CP2K Pseudo Potential Standard Format (GTH, ALL)", &
819 repeats=.true., type_of_var=lchar_t)
820 CALL section_add_keyword(section, keyword)
821 CALL keyword_release(keyword)
822
823 END SUBROUTINE create_potential_section
824
825! **************************************************************************************************
826!> \brief Creates the &KG_POTENTIAL section
827!> \param section the section to create
828!> \author JGH
829! **************************************************************************************************
830 SUBROUTINE create_kgpot_section(section)
831 TYPE(section_type), POINTER :: section
832
833 TYPE(keyword_type), POINTER :: keyword
834
835 CALL section_create(section, __location__, name="kg_potential", &
836 description="Section used to specify KG Potentials.", &
837 n_keywords=1, n_subsections=0, repeats=.false.)
838 NULLIFY (keyword)
839 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
840 description="CP2K KG TNADD Potential Standard Format (TNADD)", &
841 repeats=.true., type_of_var=lchar_t)
842 CALL section_add_keyword(section, keyword)
843 CALL keyword_release(keyword)
844
845 END SUBROUTINE create_kgpot_section
846
847! **************************************************************************************************
848!> \brief Creates the &BASIS section
849!> \param section the section to create
850!> \author teo
851! **************************************************************************************************
852 SUBROUTINE create_basis_section(section)
853 TYPE(section_type), POINTER :: section
854
855 TYPE(keyword_type), POINTER :: keyword
856
857 CALL section_create(section, __location__, name="BASIS", &
858 description="Section used to specify a general basis set for QM calculations.", &
859 n_keywords=1, n_subsections=0, repeats=.true.)
860
861 NULLIFY (keyword)
862
863 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
864 description="The type of basis set defined in this section.", &
865 lone_keyword_c_val="Orbital", &
866 usage="Orbital", default_c_val="Orbital")
867 CALL section_add_keyword(section, keyword)
868 CALL keyword_release(keyword)
869
870 CALL keyword_create( &
871 keyword, __location__, name="_DEFAULT_KEYWORD_", &
872 repeats=.true., type_of_var=lchar_t, &
873 description="CP2K Basis Set Standard Format:"//newline//newline// &
874 "```"//newline// &
875 "Element symbol Name of the basis set Alias names"//newline// &
876 "nset (repeat the following block of lines nset times)"//newline// &
877 "n lmin lmax nexp nshell(lmin) nshell(lmin+1) ... nshell(lmax-1) nshell(lmax)"//newline// &
878 "a(1) c(1,l,1) c(1,l,2) ... c(1,l,nshell(l)-1) c(1,l,nshell(l)), l=lmin,lmax"//newline// &
879 "a(2) c(2,l,1) c(2,l,2) ... c(2,l,nshell(l)-1) c(2,l,nshell(l)), l=lmin,lmax"//newline// &
880 " . . . . ."//newline// &
881 " . . . . ."//newline// &
882 " . . . . ."//newline// &
883 "a(nexp-1) c(nexp-1,l,1) c(nexp-1,l,2) ... c(nexp-1,l,nshell(l)-1) c(nexp-1,l,nshell(l)), l=lmin,lmax"//newline// &
884 "a(nexp) c(nexp,l,1) c(nexp,l,2) ... c(nexp,l,nshell(l)-1) c(nexp,l,nshell(l)), l=lmin,lmax"//newline// &
885 newline// &
886 newline// &
887 "nset : Number of exponent sets"//newline// &
888 "n : Principle quantum number (only for orbital label printing)"//newline// &
889 "lmax : Maximum angular momentum quantum number l"//newline// &
890 "lmin : Minimum angular momentum quantum number l"//newline// &
891 "nshell(l): Number of shells for angular momentum quantum number l"//newline// &
892 "a : Exponent"//newline// &
893 "c : Contraction coefficient"//newline// &
894 "```")
895 CALL section_add_keyword(section, keyword)
896 CALL keyword_release(keyword)
897
898 END SUBROUTINE create_basis_section
899
900! **************************************************************************************************
901!> \brief Creates the &COORD section
902!> \param section the section to create
903!> \author teo
904! **************************************************************************************************
905 SUBROUTINE create_coord_section(section)
906 TYPE(section_type), POINTER :: section
907
908 TYPE(keyword_type), POINTER :: keyword
909
910 cpassert(.NOT. ASSOCIATED(section))
911 CALL section_create(section, __location__, name="coord", &
912 description="The coordinates for simple systems (like small QM cells) "// &
913 "are specified here by default using explicit XYZ coordinates. "// &
914 "Simple products and fractions combined with functions of a single "// &
915 "number can be used like 2/3, 0.3*COS(60) or -SQRT(3)/2. "// &
916 "More complex systems should be given via an external coordinate "// &
917 "file in the SUBSYS%TOPOLOGY section.", &
918 n_keywords=1, n_subsections=0, repeats=.false.)
919 NULLIFY (keyword)
920 CALL keyword_create(keyword, __location__, name="UNIT", &
921 description='Specify the unit of measurement for the coordinates in input'// &
922 "All available CP2K units can be used.", &
923 usage="UNIT angstrom", default_c_val="angstrom")
924 CALL section_add_keyword(section, keyword)
925 CALL keyword_release(keyword)
926
927 CALL keyword_create(keyword, __location__, name="SCALED", &
928 description='Specify if the coordinates in input are scaled. '// &
929 'When true, the coordinates are given in multiples of the lattice vectors.', &
930 usage="SCALED F", default_l_val=.false., &
931 lone_keyword_l_val=.true.)
932 CALL section_add_keyword(section, keyword)
933 CALL keyword_release(keyword)
934
935 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
936 description="The atomic coordinates in the format:"//newline//newline// &
937 "`ATOMIC_KIND X Y Z MOLNAME`"//newline//newline// &
938 "The `MOLNAME` is optional. If not provided the molecule name "// &
939 "is internally created. All other fields after `MOLNAME` are simply ignored.", &
940 repeats=.true., usage="{{String} {Real} {Real} {Real} {String}}", &
941 type_of_var=lchar_t)
942 CALL section_add_keyword(section, keyword)
943 CALL keyword_release(keyword)
944 END SUBROUTINE create_coord_section
945
946! **************************************************************************************************
947!> \brief Creates the &SHELL_COORD section
948!> \param section the section to create
949!> \author teo
950! **************************************************************************************************
951 SUBROUTINE create_shell_coord_section(section)
952 TYPE(section_type), POINTER :: section
953
954 TYPE(keyword_type), POINTER :: keyword
955
956 cpassert(.NOT. ASSOCIATED(section))
957 CALL section_create(section, __location__, name="shell_coord", &
958 description="The shell coordinates for the shell-model potentials"// &
959 " xyz format with an additional column for the index of the corresponding particle", &
960 n_keywords=1, n_subsections=0, repeats=.false.)
961 NULLIFY (keyword)
962 CALL keyword_create(keyword, __location__, name="UNIT", &
963 description='Specify the unit of measurement for the coordinates in input'// &
964 "All available CP2K units can be used.", &
965 usage="UNIT angstrom", default_c_val="angstrom")
966 CALL section_add_keyword(section, keyword)
967 CALL keyword_release(keyword)
968
969 CALL keyword_create(keyword, __location__, name="SCALED", &
970 description='Specify if the coordinates in input are scaled. '// &
971 'When true, the coordinates are given in multiples of the lattice vectors.', &
972 usage="SCALED F", default_l_val=.false., &
973 lone_keyword_l_val=.true.)
974 CALL section_add_keyword(section, keyword)
975 CALL keyword_release(keyword)
976
977 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
978 description="The shell particle coordinates in the format:"//newline//newline// &
979 "`ATOMIC_KIND X Y Z ATOMIC_INDEX`"//newline//newline// &
980 "The `ATOMIC_INDEX` refers to the atom the shell particle belongs to.", &
981 repeats=.true., usage="{{String} {Real} {Real} {Real} {Integer}}", &
982 type_of_var=lchar_t)
983 CALL section_add_keyword(section, keyword)
984 CALL keyword_release(keyword)
985
986 END SUBROUTINE create_shell_coord_section
987
988! **************************************************************************************************
989!> \brief Creates the &core_COORD section
990!> \param section the section to create
991!> \author teo
992! **************************************************************************************************
993 SUBROUTINE create_core_coord_section(section)
994 TYPE(section_type), POINTER :: section
995
996 TYPE(keyword_type), POINTER :: keyword
997
998 cpassert(.NOT. ASSOCIATED(section))
999 CALL section_create(section, __location__, name="core_coord", &
1000 description="The core coordinates for the shell-model potentials"// &
1001 " xyz format with an additional column for the index of the corresponding particle", &
1002 n_keywords=1, n_subsections=0, repeats=.false.)
1003 NULLIFY (keyword)
1004 CALL keyword_create(keyword, __location__, name="UNIT", &
1005 description='Specify the unit of measurement for the coordinates in input'// &
1006 "All available CP2K units can be used.", &
1007 usage="UNIT angstrom", default_c_val="angstrom")
1008 CALL section_add_keyword(section, keyword)
1009 CALL keyword_release(keyword)
1010
1011 CALL keyword_create(keyword, __location__, name="SCALED", &
1012 description='Specify if the coordinates in input are scaled. '// &
1013 'When true, the coordinates are given in multiples of the lattice vectors.', &
1014 usage="SCALED F", default_l_val=.false., &
1015 lone_keyword_l_val=.true.)
1016 CALL section_add_keyword(section, keyword)
1017 CALL keyword_release(keyword)
1018
1019 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1020 description="The core particle coordinates in the format:"//newline//newline// &
1021 "`ATOMIC_KIND X Y Z ATOMIC_INDEX`"//newline//newline// &
1022 "The `ATOMIC_INDEX` refers to the atom the core particle belongs to.", &
1023 repeats=.true., usage="{{String} {Real} {Real} {Real} {Integer}}", &
1024 type_of_var=lchar_t)
1025 CALL section_add_keyword(section, keyword)
1026 CALL keyword_release(keyword)
1027
1028 END SUBROUTINE create_core_coord_section
1029
1030! **************************************************************************************************
1031!> \brief Creates the QM/MM section
1032!> \param section the section to create
1033!> \author teo
1034! **************************************************************************************************
1035 SUBROUTINE create_kind_section(section)
1036 TYPE(section_type), POINTER :: section
1037
1038 TYPE(keyword_type), POINTER :: keyword
1039 TYPE(section_type), POINTER :: subsection
1040
1041 cpassert(.NOT. ASSOCIATED(section))
1042
1043 CALL section_create(section, __location__, name="KIND", &
1044 description="The description of the kind of the atoms (mostly for QM)", &
1045 n_keywords=20, n_subsections=1, repeats=.true.)
1046
1047 NULLIFY (keyword)
1048
1049 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
1050 description="The name of the kind described in this section.", &
1051 usage="H", default_c_val="DEFAULT")
1052 CALL section_add_keyword(section, keyword)
1053 CALL keyword_release(keyword)
1054
1055 CALL keyword_create(keyword, __location__, name="BASIS_SET", &
1056 description="The primary Gaussian basis set (NONE implies no basis used, meaningful with GHOST). "// &
1057 "Defaults are set for TYPE {ORB} and FORM {GTO}. Possible values for TYPE are "// &
1058 "{ORB, AUX, MIN, RI_AUX, LRI, ...}. Possible values for "// &
1059 "FORM are {GTO, STO}. Where STO results in a GTO expansion of a Slater type basis. "// &
1060 "If a value for FORM is given, also TYPE has to be set explicitly.", &
1061 usage="BASIS_SET [type] [form] DZVP", type_of_var=char_t, default_c_vals=[" ", " ", " "], &
1062 citations=[vandevondele2005a, vandevondele2007], &
1063 repeats=.true., n_var=-1)
1064 CALL section_add_keyword(section, keyword)
1065 CALL keyword_release(keyword)
1066
1067 ! old type basis set input keywords
1068 ! kept for backward compatibility
1069 CALL keyword_create( &
1070 keyword, __location__, name="AUX_BASIS_SET", &
1071 variants=s2a("AUXILIARY_BASIS_SET", "AUX_BASIS"), &
1072 description="The auxiliary basis set (GTO type)", &
1073 usage="AUX_BASIS_SET DZVP", default_c_val=" ", &
1074 n_var=1, &
1075 deprecation_notice="use 'BASIS_SET AUX ...' instead", &
1076 removed=.true.)
1077 CALL section_add_keyword(section, keyword)
1078 CALL keyword_release(keyword)
1079
1080 CALL keyword_create( &
1081 keyword, __location__, name="RI_AUX_BASIS_SET", &
1082 variants=s2a("RI_MP2_BASIS_SET", "RI_RPA_BASIS_SET", "RI_AUX_BASIS"), &
1083 description="The RI auxiliary basis set used in WF_CORRELATION (GTO type)", &
1084 usage="RI_AUX_BASIS_SET DZVP", default_c_val=" ", &
1085 n_var=1, &
1086 deprecation_notice="Use 'BASIS_SET RI_AUX ...' instead.", &
1087 removed=.true.)
1088 CALL section_add_keyword(section, keyword)
1089 CALL keyword_release(keyword)
1090
1091 CALL keyword_create( &
1092 keyword, __location__, name="LRI_BASIS_SET", &
1093 variants=s2a("LRI_BASIS"), &
1094 description="The local resolution of identity basis set (GTO type)", &
1095 usage="LRI_BASIS_SET", default_c_val=" ", &
1096 n_var=1, &
1097 deprecation_notice="Use 'BASIS_SET LRI ...' instead.", &
1098 removed=.true.)
1099 CALL section_add_keyword(section, keyword)
1100 CALL keyword_release(keyword)
1101
1102 CALL keyword_create( &
1103 keyword, __location__, name="AUX_FIT_BASIS_SET", &
1104 variants=s2a("AUXILIARY_FIT_BASIS_SET", "AUX_FIT_BASIS"), &
1105 description="The auxiliary basis set (GTO type) for auxiliary density matrix method", &
1106 usage="AUX_FIT_BASIS_SET DZVP", default_c_val=" ", &
1107 citations=[guidon2010], &
1108 n_var=1, &
1109 deprecation_notice="Use 'BASIS_SET AUX_FIT ...' instead.", &
1110 removed=.true.)
1111 CALL section_add_keyword(section, keyword)
1112 CALL keyword_release(keyword)
1113 ! end of old basis set keywords
1114
1115 CALL keyword_create(keyword, __location__, name="ELEC_CONF", &
1116 description="Specifies the electronic configuration used in construction the "// &
1117 "atomic initial guess (see the pseudo potential file for the default values).", &
1118 usage="ELEC_CONF n_elec(s) n_elec(p) n_elec(d) ... ", &
1119 n_var=-1, type_of_var=integer_t)
1120 CALL section_add_keyword(section, keyword)
1121 CALL keyword_release(keyword)
1122
1123 CALL keyword_create(keyword, __location__, name="CORE_CORRECTION", &
1124 description="Corrects the effective nuclear charge", &
1125 usage="CORE_CORRECTION 1.0", n_var=1, &
1126 default_r_val=0.0_dp)
1127 CALL section_add_keyword(section, keyword)
1128 CALL keyword_release(keyword)
1129
1130 CALL keyword_create(keyword, __location__, name="MAGNETIZATION", &
1131 description="The magnetization used in the atomic initial guess. "// &
1132 "Adds magnetization/2 spin-alpha electrons and removes magnetization/2 spin-beta electrons.", &
1133 usage="MAGNETIZATION 0.5", n_var=1, &
1134 default_r_val=0.0_dp)
1135 CALL section_add_keyword(section, keyword)
1136 CALL keyword_release(keyword)
1137
1138 CALL keyword_create(keyword, __location__, name="ELEMENT", &
1139 variants=["ELEMENT_SYMBOL"], &
1140 description="The element of the actual kind "// &
1141 "(if not given it is inferred from the kind name)", &
1142 usage="ELEMENT O", type_of_var=char_t, n_var=1)
1143 CALL section_add_keyword(section, keyword)
1144 CALL keyword_release(keyword)
1145
1146 CALL keyword_create(keyword, __location__, name="MASS", &
1147 variants=s2a("ATOMIC_MASS", "ATOMIC_WEIGHT", "WEIGHT"), &
1148 description="The mass of the atom "// &
1149 "(if negative or non present it is inferred from the element symbol)", &
1150 usage="MASS 2.0", type_of_var=real_t, n_var=1)
1151 CALL section_add_keyword(section, keyword)
1152 CALL keyword_release(keyword)
1153
1154 CALL keyword_create(keyword, __location__, name="POTENTIAL_FILE_NAME", &
1155 description="The name of the file where to find this kinds pseudopotential."// &
1156 " Default file is specified in DFT section.", &
1157 usage="POTENTIAL_FILE_NAME <PSEUDO-POTENTIAL-FILE-NAME>", default_c_val="-", n_var=1)
1158 CALL section_add_keyword(section, keyword)
1159 CALL keyword_release(keyword)
1160
1161 CALL keyword_create(keyword, __location__, name="POTENTIAL_TYPE", &
1162 description="The type of this kinds pseudopotential (ECP, ALL, GTH, UPS).", &
1163 deprecation_notice="Use 'POTENTIAL <TYPE> ...' instead.", &
1164 usage="POTENTIAL_TYPE <TYPE>", default_c_val="", n_var=1)
1165 CALL section_add_keyword(section, keyword)
1166 CALL keyword_release(keyword)
1167
1168 CALL keyword_create(keyword, __location__, name="POTENTIAL", &
1169 variants=["POT"], &
1170 description="The type (ECP, ALL, GTH, UPS) and name of the pseudopotential for the defined kind.", &
1171 usage="POTENTIAL [type] <POTENTIAL-NAME>", type_of_var=char_t, default_c_vals=[" ", " "], &
1172 citations=[goedecker1996, hartwigsen1998, krack2005], n_var=-1)
1173 CALL section_add_keyword(section, keyword)
1174 CALL keyword_release(keyword)
1175
1176 CALL keyword_create(keyword, __location__, name="KG_POTENTIAL_FILE_NAME", &
1177 description="The name of the file where to find this kinds KG potential."// &
1178 " Default file is specified in DFT section.", &
1179 usage="KG_POTENTIAL_FILE_NAME <POTENTIAL-FILE-NAME>", default_c_val="-", n_var=1)
1180 CALL section_add_keyword(section, keyword)
1181 CALL keyword_release(keyword)
1182
1183 CALL keyword_create(keyword, __location__, name="KG_POTENTIAL", &
1184 variants=["KG_POT"], &
1185 description="The name of the non-additive atomic kinetic energy potential.", &
1186 usage="KG_POTENTIAL <TNADD-POTENTIAL-NAME>", default_c_val="NONE", n_var=1)
1187 CALL section_add_keyword(section, keyword)
1188 CALL keyword_release(keyword)
1189
1190 CALL keyword_create(keyword, __location__, name="ECP_SEMI_LOCAL", &
1191 description="Use ECPs in the original semi-local form."// &
1192 " This requires the availability of the corresponding integral library."// &
1193 " If set to False, a fully nonlocal one-center expansion of the ECP is constructed.", &
1194 usage="ECP_SEMI_LOCAL {T,F}", default_l_val=.true., lone_keyword_l_val=.true.)
1195 CALL section_add_keyword(section, keyword)
1196 CALL keyword_release(keyword)
1197
1198 CALL keyword_create(keyword, __location__, name="COVALENT_RADIUS", &
1199 description="Use this covalent radius (in Angstrom) for all atoms of "// &
1200 "the atomic kind instead of the internally tabulated default value", &
1201 usage="COVALENT_RADIUS 1.24", n_var=1, default_r_val=0.0_dp, &
1202 unit_str="angstrom")
1203 CALL section_add_keyword(section, keyword)
1204 CALL keyword_release(keyword)
1205
1206 CALL keyword_create(keyword, __location__, name="VDW_RADIUS", &
1207 description="Use this van der Waals radius (in Angstrom) for all atoms of "// &
1208 "the atomic kind instead of the internally tabulated default value", &
1209 usage="VDW_RADIUS 1.85", n_var=1, default_r_val=0.0_dp, unit_str="angstrom")
1210 CALL section_add_keyword(section, keyword)
1211 CALL keyword_release(keyword)
1212
1213 CALL keyword_create(keyword, __location__, name="HARD_EXP_RADIUS", &
1214 description="The region where the hard density is supposed to be confined"// &
1215 " (GAPW) (in Bohr, default is 1.2 for H and 1.512 otherwise)", &
1216 usage="HARD_EXP_RADIUS 0.9", type_of_var=real_t, n_var=1)
1217 CALL section_add_keyword(section, keyword)
1218 CALL keyword_release(keyword)
1219
1220 CALL keyword_create(keyword, __location__, name="MAX_RAD_LOCAL", &
1221 description="Max radius for the basis functions used to"// &
1222 " generate the local projectors in GAPW [Bohr]", &
1223 usage="MAX_RAD_LOCAL 15.0", default_r_val=13.0_dp*bohr)
1224 CALL section_add_keyword(section, keyword)
1225 CALL keyword_release(keyword)
1226
1227 CALL keyword_create(keyword, __location__, name="RHO0_EXP_RADIUS", &
1228 description="the radius which defines the atomic region where "// &
1229 "the hard compensation density is confined. "// &
1230 "should be less than HARD_EXP_RADIUS (GAPW) (Bohr, default equals HARD_EXP_RADIUS)", &
1231 usage="RHO0_EXP_RADIUS 0.9", type_of_var=real_t, n_var=1)
1232 CALL section_add_keyword(section, keyword)
1233 CALL keyword_release(keyword)
1234
1235 CALL keyword_create(keyword, __location__, name="LEBEDEV_GRID", &
1236 description="The number of points for the angular part of "// &
1237 "the local grid (GAPW)", &
1238 usage="LEBEDEV_GRID 40", default_i_val=50)
1239 CALL section_add_keyword(section, keyword)
1240 CALL keyword_release(keyword)
1241
1242 CALL keyword_create(keyword, __location__, name="RADIAL_GRID", &
1243 description="The number of points for the radial part of "// &
1244 "the local grid (GAPW)", &
1245 usage="RADIAL_GRID 70", default_i_val=50)
1246 CALL section_add_keyword(section, keyword)
1247 CALL keyword_release(keyword)
1248
1249 CALL keyword_create(keyword, __location__, name="MM_RADIUS", &
1250 description="Defines the radius of the electrostatic multipole "// &
1251 "of the atom in Fist. This radius applies to the charge, the "// &
1252 "dipole and the quadrupole. When zero, the atom is treated as "// &
1253 "a point multipole, otherwise it is treated as a Gaussian "// &
1254 "charge distribution with the given radius: "// &
1255 "p(x,y,z)*N*exp(-(x**2+y**2+z**2)/(2*MM_RADIUS**2)), where N is "// &
1256 "a normalization constant. In the core-shell model, only the "// &
1257 "shell is treated as a Gaussian and the core is always a point "// &
1258 "charge.", &
1259 usage="MM_RADIUS {real}", default_r_val=0.0_dp, type_of_var=real_t, &
1260 unit_str="angstrom", n_var=1)
1261 CALL section_add_keyword(section, keyword)
1262 CALL keyword_release(keyword)
1263
1264 CALL keyword_create(keyword, __location__, name="DFTB3_PARAM", &
1265 description="The third order parameter (derivative of hardness) used in "// &
1266 "diagonal DFTB3 correction.", &
1267 usage="DFTB3_PARAM 0.2", default_r_val=0.0_dp)
1268 CALL section_add_keyword(section, keyword)
1269 CALL keyword_release(keyword)
1270
1271 CALL keyword_create(keyword, __location__, name="LMAX_DFTB", &
1272 description="The maximum l-quantum number of the DFTB basis for this kind.", &
1273 usage="LMAX_DFTB 1", default_i_val=-1)
1274 CALL section_add_keyword(section, keyword)
1275 CALL keyword_release(keyword)
1276
1277 CALL keyword_create(keyword, __location__, name="MAO", &
1278 description="The number of MAOs (Modified Atomic Orbitals) for this kind.", &
1279 usage="MAO 4", default_i_val=-1)
1280 CALL section_add_keyword(section, keyword)
1281 CALL keyword_release(keyword)
1282
1283 ! Logicals
1284 CALL keyword_create(keyword, __location__, name="SE_P_ORBITALS_ON_H", &
1285 description="Forces the usage of p-orbitals on H for SEMI-EMPIRICAL calculations."// &
1286 " This keyword applies only when the KIND is specifying an Hydrogen element."// &
1287 " It is ignored in all other cases. ", &
1288 usage="SE_P_ORBITALS_ON_H", default_l_val=.false., lone_keyword_l_val=.true.)
1289 CALL section_add_keyword(section, keyword)
1290 CALL keyword_release(keyword)
1291
1292 CALL keyword_create(keyword, __location__, name="GPW_TYPE", &
1293 description="Force one type to be treated by the GPW scheme,"// &
1294 " whatever are its primitives, even if the GAPW method is used", &
1295 usage="GPW_TYPE", default_l_val=.false., lone_keyword_l_val=.true.)
1296 CALL section_add_keyword(section, keyword)
1297 CALL keyword_release(keyword)
1298
1299 CALL keyword_create(keyword, __location__, &
1300 name="GHOST", &
1301 description="This keyword makes all atoms of this kind "// &
1302 "ghost atoms, i.e. without pseudo or nuclear charge. "// &
1303 "Useful to just have the basis set at that position (e.g. BSSE calculations), "// &
1304 "or to have a non-interacting particle with BASIS_SET NONE", &
1305 usage="GHOST", &
1306 default_l_val=.false., &
1307 lone_keyword_l_val=.true.)
1308 CALL section_add_keyword(section, keyword)
1309 CALL keyword_release(keyword)
1310
1311 CALL keyword_create(keyword, __location__, &
1312 name="MONOVALENT", &
1313 description="This keyword makes all atoms of this kind monovalent, i.e. with "// &
1314 "a single electron and nuclear charge set to 1.0. Used to saturate dangling bonds, "// &
1315 "ideally in conjunction with a monovalent pseudopotential. Currently GTH only.", &
1316 usage="MONOVALENT", &
1317 default_l_val=.false., &
1318 lone_keyword_l_val=.true.)
1319 CALL section_add_keyword(section, keyword)
1320 CALL keyword_release(keyword)
1321
1322 CALL keyword_create(keyword, __location__, &
1323 name="FLOATING_BASIS_CENTER", &
1324 description="This keyword makes all atoms of this kind "// &
1325 "floating functions, i.e. without pseudo or nuclear charge"// &
1326 " which are subject to a geometry optimization in the outer SCF.", &
1327 usage="FLOATING_BASIS_CENTER", &
1328 default_l_val=.false., &
1329 lone_keyword_l_val=.true.)
1330 CALL section_add_keyword(section, keyword)
1331 CALL keyword_release(keyword)
1332
1333 CALL keyword_create(keyword, __location__, &
1334 name="NO_OPTIMIZE", &
1335 description="Skip optimization of this type (used in specific basis set or"// &
1336 " potential optimization schemes)", &
1337 usage="NO_OPTIMIZE", &
1338 default_l_val=.false., &
1339 lone_keyword_l_val=.true.)
1340 CALL section_add_keyword(section, keyword)
1341 CALL keyword_release(keyword)
1342
1343 CALL keyword_create(keyword, __location__, name="PAO_BASIS_SIZE", &
1344 description="The block size used for the polarized atomic orbital basis. "// &
1345 "Setting PAO_BASIS_SIZE to the size of the primary basis or to a value "// &
1346 "below one will disables the PAO method for the given atomic kind. "// &
1347 "By default PAO is disbabled.", default_i_val=0)
1348 CALL section_add_keyword(section, keyword)
1349 CALL keyword_release(keyword)
1350
1351 CALL keyword_create(keyword, __location__, name="PAO_MODEL_FILE", type_of_var=lchar_t, &
1352 description="The filename of the PyTorch model for predicting PAO basis sets.")
1353 CALL section_add_keyword(section, keyword)
1354 CALL keyword_release(keyword)
1355
1356 NULLIFY (subsection)
1357 CALL create_pao_potential_section(subsection)
1358 CALL section_add_subsection(section, subsection)
1359 CALL section_release(subsection)
1360
1361 CALL create_pao_descriptor_section(subsection)
1362 CALL section_add_subsection(section, subsection)
1363 CALL section_release(subsection)
1364
1365 CALL create_basis_section(subsection)
1366 CALL section_add_subsection(section, subsection)
1367 CALL section_release(subsection)
1368
1369 CALL create_potential_section(subsection)
1370 CALL section_add_subsection(section, subsection)
1371 CALL section_release(subsection)
1372
1373 CALL create_kgpot_section(subsection)
1374 CALL section_add_subsection(section, subsection)
1375 CALL section_release(subsection)
1376
1377 CALL create_dft_plus_u_section(subsection)
1378 CALL section_add_subsection(section, subsection)
1379 CALL section_release(subsection)
1380
1381 CALL create_bs_section(subsection)
1382 CALL section_add_subsection(section, subsection)
1383 CALL section_release(subsection)
1384
1385 END SUBROUTINE create_kind_section
1386
1387! **************************************************************************************************
1388!> \brief Creates the PAO_POTENTIAL section
1389!> \param section the section to create
1390!> \author Ole Schuett
1391! **************************************************************************************************
1392 SUBROUTINE create_pao_potential_section(section)
1393 TYPE(section_type), POINTER :: section
1394
1395 TYPE(keyword_type), POINTER :: keyword
1396
1397 cpassert(.NOT. ASSOCIATED(section))
1398 NULLIFY (keyword)
1399
1400 CALL section_create(section, __location__, name="PAO_POTENTIAL", repeats=.true., &
1401 description="Settings of the PAO potentials, which are atomic kind specific.")
1402
1403 CALL keyword_create(keyword, __location__, name="MAXL", &
1404 description="Maximum angular moment of the potential "// &
1405 "(must be an even number).", default_i_val=0)
1406 CALL section_add_keyword(section, keyword)
1407 CALL keyword_release(keyword)
1408
1409 CALL keyword_create(keyword, __location__, name="BETA", &
1410 description="Exponent of the Gaussian potential term.", &
1411 default_r_val=1.0_dp)
1412 CALL section_add_keyword(section, keyword)
1413 CALL keyword_release(keyword)
1414
1415 CALL keyword_create(keyword, __location__, name="WEIGHT", &
1416 description="Weight of Gaussian potential term.", &
1417 default_r_val=1.0_dp)
1418 CALL section_add_keyword(section, keyword)
1419 CALL keyword_release(keyword)
1420
1421 CALL keyword_create(keyword, __location__, name="MAX_PROJECTOR", &
1422 description="Maximum angular moment of the potential's projectors. "// &
1423 "Used only by the GTH parametrization", default_i_val=2)
1424 CALL section_add_keyword(section, keyword)
1425 CALL keyword_release(keyword)
1426
1427 END SUBROUTINE create_pao_potential_section
1428
1429! **************************************************************************************************
1430!> \brief Creates the PAO_DESCRIPTOR section
1431!> \param section the section to create
1432!> \author Ole Schuett
1433! **************************************************************************************************
1434 SUBROUTINE create_pao_descriptor_section(section)
1435 TYPE(section_type), POINTER :: section
1436
1437 TYPE(keyword_type), POINTER :: keyword
1438
1439 cpassert(.NOT. ASSOCIATED(section))
1440 NULLIFY (keyword)
1441
1442 CALL section_create(section, __location__, name="PAO_DESCRIPTOR", repeats=.true., &
1443 description="Settings of the PAO descriptor, which are atomic kind specific.")
1444
1445 CALL keyword_create(keyword, __location__, name="BETA", &
1446 description="Exponent of the Gaussian potential term.", &
1447 default_r_val=1.0_dp)
1448 CALL section_add_keyword(section, keyword)
1449 CALL keyword_release(keyword)
1450
1451 CALL keyword_create(keyword, __location__, name="SCREENING", &
1452 description="Exponent of the Gaussian screening.", &
1453 default_r_val=0.2_dp)
1454 CALL section_add_keyword(section, keyword)
1455 CALL keyword_release(keyword)
1456
1457 CALL keyword_create(keyword, __location__, name="WEIGHT", &
1458 description="Weight of Gaussian potential term.", &
1459 default_r_val=1.0_dp)
1460 CALL section_add_keyword(section, keyword)
1461 CALL keyword_release(keyword)
1462
1463 END SUBROUTINE create_pao_descriptor_section
1464
1465! **************************************************************************************************
1466!> \brief Create CP2K input section for BS method: imposing atomic orbital occupation
1467!> different from default in initialization of the density matrix
1468!> it works only with GUESS ATOMIC
1469!> \param section ...
1470!> \date 05.08.2009
1471!> \author MI
1472!> \version 1.0
1473! **************************************************************************************************
1474 SUBROUTINE create_bs_section(section)
1475
1476 TYPE(section_type), POINTER :: section
1477
1478 TYPE(keyword_type), POINTER :: keyword
1479 TYPE(section_type), POINTER :: subsection
1480
1481 cpassert(.NOT. ASSOCIATED(section))
1482
1483 CALL section_create(section, __location__, &
1484 name="BS", &
1485 description="Define the required atomic orbital occupation "// &
1486 "assigned in initialization of the density matrix, by adding or "// &
1487 "subtracting electrons from specific angular momentum channels. "// &
1488 "It works only with GUESS ATOMIC.", &
1489 n_keywords=0, &
1490 n_subsections=2, &
1491 repeats=.false.)
1492
1493 NULLIFY (keyword, subsection)
1494
1495 CALL keyword_create(keyword, __location__, &
1496 name="_SECTION_PARAMETERS_", &
1497 description="controls the activation of the BS section", &
1498 usage="&BS ON", &
1499 default_l_val=.false., &
1500 lone_keyword_l_val=.true.)
1501 CALL section_add_keyword(section, keyword)
1502 CALL keyword_release(keyword)
1503
1504 CALL section_create(subsection, __location__, name="ALPHA", description="alpha spin", &
1505 n_keywords=3, &
1506 n_subsections=0, &
1507 repeats=.false.)
1508
1509 CALL keyword_create(keyword, __location__, &
1510 name="NEL", &
1511 description="Orbital ccupation change per angular momentum quantum number. "// &
1512 "In unrestricted calculations applied to spin alpha.", &
1513 repeats=.false., &
1514 n_var=-1, &
1515 default_i_val=-1, &
1516 usage="NEL 2")
1517 CALL section_add_keyword(subsection, keyword)
1518 CALL keyword_release(keyword)
1519
1520 CALL keyword_create(keyword, __location__, &
1521 name="L", &
1522 variants=["L"], &
1523 description="Angular momentum quantum number of the "// &
1524 "orbitals whose occupation is changed", &
1525 repeats=.false., &
1526 n_var=-1, &
1527 default_i_val=-1, &
1528 usage="L 2")
1529 CALL section_add_keyword(subsection, keyword)
1530 CALL keyword_release(keyword)
1531
1532 CALL keyword_create(keyword, __location__, &
1533 name="N", &
1534 variants=["N"], &
1535 description="Principal quantum number of the "// &
1536 "orbitals whose occupation is changed. "// &
1537 "Default is the first not occupied", &
1538 repeats=.false., &
1539 n_var=-1, &
1540 default_i_val=0, &
1541 usage="N 2")
1542 CALL section_add_keyword(subsection, keyword)
1543 CALL keyword_release(keyword)
1544 CALL section_add_subsection(section, subsection)
1545 CALL section_release(subsection)
1546
1547 CALL section_create(subsection, __location__, name="BETA", description="beta spin", &
1548 n_keywords=3, &
1549 n_subsections=0, &
1550 repeats=.false.)
1551
1552 CALL keyword_create(keyword, __location__, &
1553 name="NEL", &
1554 description="Orbital ccupation change per angular momentum quantum number. "// &
1555 "Applied to spin beta and active only in unrestricted calculations.", &
1556 repeats=.false., &
1557 n_var=-1, &
1558 default_i_val=-1, &
1559 usage="NEL 2")
1560 CALL section_add_keyword(subsection, keyword)
1561 CALL keyword_release(keyword)
1562
1563 CALL keyword_create(keyword, __location__, &
1564 name="L", &
1565 description="Angular momentum quantum number of the "// &
1566 "orbitals of beta spin whose occupation is changed. "// &
1567 "Active only for unrestricted calculations", &
1568 repeats=.false., &
1569 n_var=-1, &
1570 default_i_val=-1, &
1571 usage="L 2")
1572 CALL section_add_keyword(subsection, keyword)
1573 CALL keyword_release(keyword)
1574
1575 CALL keyword_create(keyword, __location__, &
1576 name="N", &
1577 description="Principal quantum number of the "// &
1578 "orbitals of beta spin whose occupation is changed. "// &
1579 "Default is the first not occupied. "// &
1580 "Active only for unrestricted calculations", &
1581 repeats=.false., &
1582 n_var=-1, &
1583 default_i_val=0, &
1584 usage="N 2")
1585 CALL section_add_keyword(subsection, keyword)
1586 CALL keyword_release(keyword)
1587
1588 CALL section_add_subsection(section, subsection)
1589 CALL section_release(subsection)
1590
1591 END SUBROUTINE create_bs_section
1592
1593! **************************************************************************************************
1594!> \brief Create the topology section for FIST.. and the base is running running...
1595!> Contains all information regarding topology to be read in input file..
1596!> \param section the section to create
1597!> \author teo
1598! **************************************************************************************************
1599 SUBROUTINE create_topology_section(section)
1600 TYPE(section_type), POINTER :: section
1601
1602 TYPE(keyword_type), POINTER :: keyword
1603 TYPE(section_type), POINTER :: print_key, subsection
1604
1605 cpassert(.NOT. ASSOCIATED(section))
1606 CALL section_create(section, __location__, name="TOPOLOGY", &
1607 description="Section specifying information regarding how to handle the topology"// &
1608 " for classical runs.", &
1609 n_keywords=5, n_subsections=0, repeats=.false.)
1610
1611 NULLIFY (keyword, print_key)
1612 ! Logical
1613 CALL keyword_create(keyword, __location__, name="USE_ELEMENT_AS_KIND", &
1614 description="Kinds are generated according to the element name."// &
1615 " Default=True for SE and TB methods.", &
1616 usage="USE_ELEMENT_AS_KIND logical", &
1617 default_l_val=.false., lone_keyword_l_val=.true.)
1618 CALL section_add_keyword(section, keyword)
1619 CALL keyword_release(keyword)
1620
1621 CALL keyword_create(keyword, __location__, name="CHARGE_OCCUP", &
1622 variants=["CHARGE_O"], &
1623 description="Read MM charges from the OCCUP field of PDB file.", &
1624 usage="CHARGE_OCCUP logical", &
1625 default_l_val=.false., lone_keyword_l_val=.true.)
1626 CALL section_add_keyword(section, keyword)
1627 CALL keyword_release(keyword)
1628
1629 CALL keyword_create(keyword, __location__, name="CHARGE_BETA", &
1630 variants=["CHARGE_B"], &
1631 description="Read MM charges from the BETA field of PDB file.", &
1632 usage="CHARGE_BETA logical", &
1633 default_l_val=.false., lone_keyword_l_val=.true.)
1634 CALL section_add_keyword(section, keyword)
1635 CALL keyword_release(keyword)
1636
1637 CALL keyword_create(keyword, __location__, name="CHARGE_EXTENDED", &
1638 description="Read MM charges from the very last field of PDB file (starting from column 81)."// &
1639 " No limitations of number of digits.", &
1640 usage="CHARGE_EXTENDED logical", &
1641 default_l_val=.false., lone_keyword_l_val=.true.)
1642 CALL section_add_keyword(section, keyword)
1643 CALL keyword_release(keyword)
1644
1645 CALL keyword_create(keyword, __location__, name="PARA_RES", &
1646 description="For a protein, each residue is now considered a molecule", &
1647 usage="PARA_RES logical", &
1648 default_l_val=.true., lone_keyword_l_val=.true.)
1649 CALL section_add_keyword(section, keyword)
1650 CALL keyword_release(keyword)
1651
1652 CALL keyword_create(keyword, __location__, name="MOL_CHECK", &
1653 description="Check molecules have the same number of atom and names.", &
1654 usage="MOL_CHECK logical", &
1655 default_l_val=.true., lone_keyword_l_val=.true.)
1656 CALL section_add_keyword(section, keyword)
1657 CALL keyword_release(keyword)
1658
1659 CALL keyword_create(keyword, __location__, name="USE_G96_VELOCITY", &
1660 description="Use the velocities in the G96 coordinate files as the starting velocity", &
1661 usage="USE_G96_VELOCITY logical", &
1662 default_l_val=.false., lone_keyword_l_val=.true.)
1663 CALL section_add_keyword(section, keyword)
1664 CALL keyword_release(keyword)
1665
1666 ! Character
1667 CALL keyword_create(keyword, __location__, name="COORD_FILE_NAME", &
1668 variants=s2a("COORD_FILE"), &
1669 description="Specifies the filename that contains coordinates.", &
1670 usage="COORD_FILE_NAME <FILENAME>", type_of_var=lchar_t)
1671 CALL section_add_keyword(section, keyword)
1672 CALL keyword_release(keyword)
1673
1674 CALL keyword_create(keyword, __location__, name="COORD_FILE_FORMAT", &
1675 variants=s2a("COORDINATE"), &
1676 description="Set up the way in which coordinates will be read.", &
1677 usage="COORD_FILE_FORMAT (OFF|PDB|XYZ|G96|CRD|CIF|XTL|CP2K)", &
1678 enum_c_vals=s2a("OFF", "PDB", "XYZ", "G96", "CRD", "CIF", "XTL", "CP2K"), &
1681 enum_desc=s2a( &
1682 "Coordinates read in the &COORD section of the input file", &
1683 "Coordinates provided through a PDB file format", &
1684 "Coordinates provided through an XYZ file format", &
1685 "Coordinates provided through a GROMOS96 file format", &
1686 "Coordinates provided through an AMBER file format", &
1687 "Coordinates provided through a CIF (Crystallographic Information File) file format", &
1688 "Coordinates provided through a XTL (MSI native) file format", &
1689 "Read the coordinates in CP2K &COORD section format from an external file. "// &
1690 "NOTE: This file will be overwritten with the latest coordinates."), &
1691 default_i_val=do_coord_off)
1692 CALL section_add_keyword(section, keyword)
1693 CALL keyword_release(keyword)
1694
1695 CALL keyword_create(keyword, __location__, name="NUMBER_OF_ATOMS", &
1696 variants=s2a("NATOMS", "NATOM"), &
1697 description="Optionally define the number of atoms read from an external file "// &
1698 "(see COORD_FILE_NAME) if the COORD_FILE_FORMAT CP2K is used", &
1699 repeats=.false., &
1700 n_var=1, &
1701 type_of_var=integer_t, &
1702 default_i_val=-1, &
1703 usage="NATOMS 768000")
1704 CALL section_add_keyword(section, keyword)
1705 CALL keyword_release(keyword)
1706
1707 CALL connectivity_framework(section, do_conn_generate)
1708
1709 CALL keyword_create(keyword, __location__, name="DISABLE_EXCLUSION_LISTS", &
1710 description="Do not build any exclusion lists.", &
1711 usage="DISABLE_EXCLUSION_LISTS", &
1712 default_l_val=.false., lone_keyword_l_val=.true.)
1713 CALL section_add_keyword(section, keyword)
1714 CALL keyword_release(keyword)
1715
1716 CALL keyword_create(keyword, __location__, name="EXCLUDE_VDW", &
1717 description="Specifies which kind of Van der Waals interaction to skip.", &
1718 usage="EXCLUDE_VDW (1-1||1-2||1-3||1-4)", &
1719 enum_c_vals=s2a("1-1", "1-2", "1-3", "1-4"), &
1720 enum_i_vals=[do_skip_11, do_skip_12, do_skip_13, do_skip_14], &
1721 default_i_val=do_skip_13)
1722 CALL section_add_keyword(section, keyword)
1723 CALL keyword_release(keyword)
1724
1725 CALL keyword_create(keyword, __location__, name="EXCLUDE_EI", &
1726 description="Specifies which kind of Electrostatic interaction to skip.", &
1727 usage="EXCLUDE_EI (1-1||1-2||1-3||1-4)", &
1728 enum_c_vals=s2a("1-1", "1-2", "1-3", "1-4"), &
1729 enum_i_vals=[do_skip_11, do_skip_12, do_skip_13, do_skip_14], &
1730 default_i_val=do_skip_13)
1731 CALL section_add_keyword(section, keyword)
1732 CALL keyword_release(keyword)
1733
1734 CALL keyword_create(keyword, __location__, name="AUTOGEN_EXCLUDE_LISTS", &
1735 description="When True, the exclude lists are solely based on"// &
1736 " the bond data in the topology. The (minimal)"// &
1737 " number of bonds between two atoms is used to"// &
1738 " determine if the atom pair is added to an"// &
1739 " exclusion list. When False, 1-2 exclusion is based"// &
1740 " on bonds in the topology, 1-3 exclusion is based"// &
1741 " on bonds and bends in the topology, 1-4 exclusion"// &
1742 " is based on bonds, bends and dihedrals in the"// &
1743 " topology. This implies that a missing dihedral in"// &
1744 " the topology will cause the corresponding 1-4 pair"// &
1745 " not to be in the exclusion list, in case 1-4"// &
1746 " exclusion is requested for VDW or EI interactions.", &
1747 usage="AUTOGEN_EXCLUDE_LISTS logical", &
1748 default_l_val=.false., lone_keyword_l_val=.true.)
1749 CALL section_add_keyword(section, keyword)
1750 CALL keyword_release(keyword)
1751
1752 CALL keyword_create( &
1753 keyword, __location__, name="MULTIPLE_UNIT_CELL", &
1754 description="Specifies the numbers of repetition in space (X, Y, Z) of the defined cell, "// &
1755 "assuming it as a unit cell. This keyword affects only the coordinates specification. The same keyword "// &
1756 "in SUBSYS%CELL%MULTIPLE_UNIT_CELL should be modified in order to affect the cell "// &
1757 "specification.", usage="MULTIPLE_UNIT_CELL 1 1 1", &
1758 n_var=3, default_i_vals=[1, 1, 1], repeats=.false.)
1759 CALL section_add_keyword(section, keyword)
1760 CALL keyword_release(keyword)
1761
1762 CALL keyword_create(keyword, __location__, name="MEMORY_PROGRESSION_FACTOR", &
1763 description="This keyword is quite technical and should normally not be changed by the user. It "// &
1764 "affects the memory allocation during the construction of the topology. It does NOT affect the "// &
1765 "memory used once the topology is built.", &
1766 n_var=1, default_r_val=1.2_dp, repeats=.false.)
1767 CALL section_add_keyword(section, keyword)
1768 CALL keyword_release(keyword)
1769
1770 CALL cp_print_key_section_create(print_key, __location__, "DUMP_PDB", &
1771 description="controls the dumping of the PDB at the starting geometry", &
1772 print_level=debug_print_level, filename="dump")
1773 CALL section_add_subsection(section, print_key)
1774
1775 CALL keyword_create(keyword, __location__, name="CHARGE_OCCUP", &
1776 variants=["CHARGE_O"], &
1777 description="Write the MM charges to the OCCUP field of the PDB file", &
1778 usage="CHARGE_OCCUP logical", &
1779 default_l_val=.false., lone_keyword_l_val=.true.)
1780 CALL section_add_keyword(print_key, keyword)
1781 CALL keyword_release(keyword)
1782
1783 CALL keyword_create(keyword, __location__, name="CHARGE_BETA", &
1784 variants=["CHARGE_B"], &
1785 description="Write the MM charges to the BETA field of the PDB file", &
1786 usage="CHARGE_BETA logical", &
1787 default_l_val=.false., lone_keyword_l_val=.true.)
1788 CALL section_add_keyword(print_key, keyword)
1789 CALL keyword_release(keyword)
1790
1791 CALL keyword_create(keyword, __location__, name="CHARGE_EXTENDED", &
1792 description="Write the MM charges to the very last field of the PDB file (starting from column 81)", &
1793 usage="CHARGE_EXTENDED logical", &
1794 default_l_val=.false., lone_keyword_l_val=.true.)
1795 CALL section_add_keyword(print_key, keyword)
1796 CALL keyword_release(keyword)
1797
1798 CALL section_release(print_key)
1799
1800 CALL cp_print_key_section_create(print_key, __location__, "DUMP_PSF", &
1801 description="controls the dumping of the PSF connectivity", &
1802 print_level=debug_print_level, filename="dump")
1803 CALL section_add_subsection(section, print_key)
1804 CALL section_release(print_key)
1805
1806 NULLIFY (subsection)
1807 CALL create_exclude_list_section(subsection, "EXCLUDE_VDW_LIST")
1808 CALL section_add_subsection(section, subsection)
1809 CALL section_release(subsection)
1810
1811 CALL create_exclude_list_section(subsection, "EXCLUDE_EI_LIST")
1812 CALL section_add_subsection(section, subsection)
1813 CALL section_release(subsection)
1814
1815 CALL create_center_section(subsection)
1816 CALL section_add_subsection(section, subsection)
1817 CALL section_release(subsection)
1818
1819 CALL create_generate_section(subsection)
1820 CALL section_add_subsection(section, subsection)
1821 CALL section_release(subsection)
1822
1823 CALL create_molset_section(subsection)
1824 CALL section_add_subsection(section, subsection)
1825 CALL section_release(subsection)
1826
1827 END SUBROUTINE create_topology_section
1828
1829! **************************************************************************************************
1830!> \brief Setup a list of fine exclusion elements
1831!> \param section the section to create
1832!> \param header ...
1833!> \author Teodoro Laino [tlaino] - 12.2009
1834! **************************************************************************************************
1835 SUBROUTINE create_exclude_list_section(section, header)
1836 TYPE(section_type), POINTER :: section
1837 CHARACTER(LEN=*), INTENT(IN) :: header
1838
1839 TYPE(keyword_type), POINTER :: keyword
1840
1841 cpassert(.NOT. ASSOCIATED(section))
1842 NULLIFY (keyword)
1843 CALL section_create(section, __location__, trim(header), &
1844 description="Speficy bonds (via atom kinds) for fine tuning of 1-2 "// &
1845 "exclusion lists. If this section is not present the 1-2 exclusion is "// &
1846 "applied to all bond kinds. When this section is present the 1-2 exclusion "// &
1847 "is applied ONLY to the bonds defined herein. This section allows ONLY fine tuning of 1-2 "// &
1848 "interactions. ", &
1849 n_keywords=1, n_subsections=0, repeats=.false.)
1850
1851 CALL keyword_create(keyword, __location__, name="BOND", &
1852 description="Specify the atom kinds involved in the bond for which 1-2 exclusion holds.", &
1853 usage="BOND {KIND1} {KIND2}", type_of_var=char_t, &
1854 n_var=2)
1855 CALL section_add_keyword(section, keyword)
1856 CALL keyword_release(keyword)
1857 END SUBROUTINE create_exclude_list_section
1858
1859! **************************************************************************************************
1860!> \brief Specify keywords used to center molecule in the box
1861!> \param section the section to create
1862!> \author Teodoro Laino [tlaino] - University of Zurich - 06.2009
1863! **************************************************************************************************
1864 SUBROUTINE create_center_section(section)
1865 TYPE(section_type), POINTER :: section
1866
1867 TYPE(keyword_type), POINTER :: keyword
1868
1869 cpassert(.NOT. ASSOCIATED(section))
1870 NULLIFY (keyword)
1871 CALL section_create(section, __location__, "CENTER_COORDINATES", &
1872 description="Allows centering the coordinates of the system in the box. "// &
1873 "The centering point can be defined by the user.", &
1874 n_keywords=1, n_subsections=0, repeats=.false.)
1875
1876 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
1877 description="Controls the activation of the centering method", &
1878 usage="&CENTER_COORDINATES T", &
1879 default_l_val=.false., &
1880 lone_keyword_l_val=.true.)
1881 CALL section_add_keyword(section, keyword)
1882 CALL keyword_release(keyword)
1883
1884 CALL keyword_create(keyword, __location__, name="CENTER_POINT", &
1885 description="Specify the point used for centering the coordinates. Default is to "// &
1886 "center the system in cell/2. ", type_of_var=real_t, n_var=3, &
1887 repeats=.false.)
1888 CALL section_add_keyword(section, keyword)
1889 CALL keyword_release(keyword)
1890 END SUBROUTINE create_center_section
1891
1892! **************************************************************************************************
1893!> \brief Specify keywords used to setup several molecules with few connectivity files
1894!> \param section the section to create
1895!> \author Teodoro Laino [tlaino] - University of Zurich - 08.2008
1896! **************************************************************************************************
1897 SUBROUTINE create_molset_section(section)
1898 TYPE(section_type), POINTER :: section
1899
1900 TYPE(keyword_type), POINTER :: keyword
1901 TYPE(section_type), POINTER :: subsection, subsubsection
1902
1903 cpassert(.NOT. ASSOCIATED(section))
1904 NULLIFY (keyword, subsection, subsubsection)
1905 CALL section_create(section, __location__, name="MOL_SET", &
1906 description="Specify the connectivity of a full system specifying the connectivity"// &
1907 " of the fragments of the system.", &
1908 n_keywords=2, n_subsections=0, repeats=.false.)
1909
1910 ! MOLECULES
1911 CALL section_create(subsection, __location__, name="MOLECULE", &
1912 description="Specify information about the connectivity of single molecules", &
1913 n_keywords=2, n_subsections=0, repeats=.true.)
1914
1915 CALL keyword_create(keyword, __location__, name="NMOL", &
1916 description="number of molecules ", &
1917 usage="NMOL {integer}", default_i_val=1)
1918 CALL section_add_keyword(subsection, keyword)
1919 CALL keyword_release(keyword)
1920
1921 CALL connectivity_framework(subsection, do_conn_psf)
1922 CALL section_add_subsection(section, subsection)
1923 CALL section_release(subsection)
1924
1925 ! MERGE MOLECULES
1926 CALL section_create(subsection, __location__, name="MERGE_MOLECULES", &
1927 description="Enables the creation of connecting bridges (bonds, angles, torsions, impropers)"// &
1928 " between the two or more molecules defined with independent connectivity.", &
1929 n_keywords=2, n_subsections=0, repeats=.false.)
1930
1931 CALL section_create(subsubsection, __location__, name="bonds", &
1932 description="Defines new bonds", n_keywords=2, n_subsections=0, repeats=.false.)
1933 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1934 description="Two integer indexes per line defining the new bond."// &
1935 " Indexes must be relative to the full system and not to the single molecules", &
1936 repeats=.true., &
1937 usage="{Integer} {Integer}", type_of_var=integer_t, n_var=2)
1938 CALL section_add_keyword(subsubsection, keyword)
1939 CALL keyword_release(keyword)
1940 CALL section_add_subsection(subsection, subsubsection)
1941 CALL section_release(subsubsection)
1942
1943 CALL section_create(subsubsection, __location__, name="angles", &
1944 description="Defines new angles", n_keywords=2, n_subsections=0, &
1945 repeats=.false.)
1946 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1947 description="Three integer indexes per line defining the new angle"// &
1948 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
1949 usage="{Integer} {Integer} {Integer}", type_of_var=integer_t, n_var=3)
1950 CALL section_add_keyword(subsubsection, keyword)
1951 CALL keyword_release(keyword)
1952 CALL section_add_subsection(subsection, subsubsection)
1953 CALL section_release(subsubsection)
1954
1955 CALL section_create(subsubsection, __location__, name="torsions", &
1956 description="Defines new torsions", n_keywords=2, n_subsections=0, &
1957 repeats=.false.)
1958 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1959 description="Four integer indexes per line defining the new torsion"// &
1960 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
1961 usage="{Integer} {Integer} {Integer} {Integer}", type_of_var=integer_t, n_var=4)
1962 CALL section_add_keyword(subsubsection, keyword)
1963 CALL keyword_release(keyword)
1964 CALL section_add_subsection(subsection, subsubsection)
1965 CALL section_release(subsubsection)
1966
1967 CALL section_create(subsubsection, __location__, name="impropers", &
1968 description="Defines new impropers", n_keywords=2, n_subsections=0, &
1969 repeats=.false.)
1970 CALL keyword_create(keyword, __location__, name="_DEFAULT_KEYWORD_", &
1971 description="Four integer indexes per line defining the new improper"// &
1972 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
1973 usage="{Integer} {Integer} {Integer} {Integer}", type_of_var=integer_t, n_var=4)
1974 CALL section_add_keyword(subsubsection, keyword)
1975 CALL keyword_release(keyword)
1976 CALL section_add_subsection(subsection, subsubsection)
1977 CALL section_release(subsubsection)
1978
1979 CALL section_add_subsection(section, subsection)
1980 CALL section_release(subsection)
1981
1982 END SUBROUTINE create_molset_section
1983
1984! **************************************************************************************************
1985!> \brief Specify keywords used to generate connectivity
1986!> \param section the section to create
1987!> \author Teodoro Laino [tlaino] - University of Zurich - 08.2008
1988! **************************************************************************************************
1989 SUBROUTINE create_generate_section(section)
1990 TYPE(section_type), POINTER :: section
1991
1992 TYPE(keyword_type), POINTER :: keyword
1993 TYPE(section_type), POINTER :: subsection
1994
1995 cpassert(.NOT. ASSOCIATED(section))
1996 NULLIFY (keyword, subsection)
1997 CALL section_create(section, __location__, name="GENERATE", &
1998 description="Setup of keywords controlling the generation of the connectivity", &
1999 n_keywords=2, n_subsections=0, repeats=.true.)
2000
2001 CALL keyword_create(keyword, __location__, name="REORDER", &
2002 description="Reorder a list of atomic coordinates into order so it can be packed correctly.", &
2003 usage="REORDER <LOGICAL>", &
2004 default_l_val=.false., lone_keyword_l_val=.true.)
2005 CALL section_add_keyword(section, keyword)
2006 CALL keyword_release(keyword)
2007
2008 CALL keyword_create(keyword, __location__, name="CREATE_MOLECULES", &
2009 description="Create molecules names and definition. Can be used to override the"// &
2010 " molecules specifications of a possible input connectivity or to create molecules"// &
2011 " specifications for file types as XYZ, missing of molecules definitions.", &
2012 usage="CREATE_MOLECULES <LOGICAL>", &
2013 default_l_val=.false., lone_keyword_l_val=.true.)
2014 CALL section_add_keyword(section, keyword)
2015 CALL keyword_release(keyword)
2016
2017 CALL keyword_create(keyword, __location__, name="BONDPARM", &
2018 description="Used in conjunction with BONDPARM_FACTOR to "// &
2019 "help determine wheather there is bonding "// &
2020 "between two atoms based on a distance criteria. "// &
2021 "Can use covalent radii information or VDW radii information", &
2022 usage="BONDPARM (COVALENT||VDW)", &
2023 enum_c_vals=s2a("COVALENT", "VDW"), &
2024 enum_i_vals=[do_bondparm_covalent, do_bondparm_vdw], &
2025 default_i_val=do_bondparm_covalent)
2026 CALL section_add_keyword(section, keyword)
2027 CALL keyword_release(keyword)
2028
2029 CALL keyword_create(keyword, __location__, name="BONDPARM_FACTOR", &
2030 description="Used in conjunction with BONDPARM to help "// &
2031 "determine wheather there is bonding between "// &
2032 "two atoms based on a distance criteria.", &
2033 usage="bondparm_factor {real}", default_r_val=1.1_dp)
2034 CALL section_add_keyword(section, keyword)
2035 CALL keyword_release(keyword)
2036
2037 CALL keyword_create(keyword, __location__, name="BONDLENGTH_MAX", &
2038 description="Maximum distance to generate neighbor lists to build connectivity", &
2039 usage="BONDLENGTH_MAX <real>", &
2040 default_r_val=cp_unit_to_cp2k(value=3.0_dp, unit_str="angstrom"), &
2041 unit_str="angstrom")
2042 CALL section_add_keyword(section, keyword)
2043 CALL keyword_release(keyword)
2044
2045 CALL keyword_create(keyword, __location__, name="BONDLENGTH_MIN", &
2046 description="Minimum distance to generate neighbor lists to build connectivity", &
2047 usage="BONDLENGTH_MIN <real>", &
2048 default_r_val=cp_unit_to_cp2k(value=0.01_dp, unit_str="angstrom"), &
2049 unit_str="angstrom")
2050 CALL section_add_keyword(section, keyword)
2051 CALL keyword_release(keyword)
2052
2053 ! BONDS
2054 CALL section_create(subsection, __location__, name="BOND", &
2055 description="Section used to add/remove bonds in the connectivity."// &
2056 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2057 n_keywords=1, n_subsections=0, repeats=.true.)
2058
2059 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
2060 description="controls the activation of the bond", &
2061 usage="&BOND (ADD|REMOVE)", &
2062 enum_c_vals=s2a("ADD", "REMOVE"), &
2063 enum_i_vals=[do_add, do_remove], &
2064 default_i_val=do_add)
2065 CALL section_add_keyword(subsection, keyword)
2066 CALL keyword_release(keyword)
2067
2068 CALL keyword_create(keyword, __location__, name="ATOMS", &
2069 description="Specifies two atomic index united by a covalent bond", &
2070 usage="ATOMS {integer} {integer}", type_of_var=integer_t, n_var=2, &
2071 repeats=.true.)
2072 CALL section_add_keyword(subsection, keyword)
2073 CALL keyword_release(keyword)
2074
2075 CALL section_add_subsection(section, subsection)
2076 CALL section_release(subsection)
2077
2078 ! ANGLES
2079 CALL section_create(subsection, __location__, name="ANGLE", &
2080 description="Section used to add/remove angles in the connectivity."// &
2081 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2082 n_keywords=1, n_subsections=0, repeats=.true.)
2083
2084 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
2085 description="controls the activation of the bond", &
2086 usage="&ANGLE (ADD|REMOVE)", &
2087 enum_c_vals=s2a("ADD", "REMOVE"), &
2088 enum_i_vals=[do_add, do_remove], &
2089 default_i_val=do_add)
2090 CALL section_add_keyword(subsection, keyword)
2091 CALL keyword_release(keyword)
2092
2093 CALL keyword_create(keyword, __location__, name="ATOMS", &
2094 description="Specifies two atomic index united by a covalent bond", &
2095 usage="ATOMS {integer} {integer} {integer} ", type_of_var=integer_t, n_var=3, &
2096 repeats=.true.)
2097 CALL section_add_keyword(subsection, keyword)
2098 CALL keyword_release(keyword)
2099
2100 CALL section_add_subsection(section, subsection)
2101 CALL section_release(subsection)
2102
2103 ! TORSIONS
2104 CALL section_create(subsection, __location__, name="TORSION", &
2105 description="Section used to add/remove torsion in the connectivity."// &
2106 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2107 n_keywords=1, n_subsections=0, repeats=.true.)
2108
2109 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
2110 description="controls the activation of the bond", &
2111 usage="&TORSION (ADD|REMOVE)", &
2112 enum_c_vals=s2a("ADD", "REMOVE"), &
2113 enum_i_vals=[do_add, do_remove], &
2114 default_i_val=do_add)
2115 CALL section_add_keyword(subsection, keyword)
2116 CALL keyword_release(keyword)
2117
2118 CALL keyword_create(keyword, __location__, name="ATOMS", &
2119 description="Specifies two atomic index united by a covalent bond", &
2120 usage="ATOMS {integer} {integer} {integer} {integer} ", type_of_var=integer_t, n_var=4, &
2121 repeats=.true.)
2122 CALL section_add_keyword(subsection, keyword)
2123 CALL keyword_release(keyword)
2124
2125 CALL section_add_subsection(section, subsection)
2126 CALL section_release(subsection)
2127
2128 ! IMPROPERS
2129 CALL section_create(subsection, __location__, name="IMPROPER", &
2130 description="Section used to add/remove improper in the connectivity."// &
2131 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2132 n_keywords=1, n_subsections=0, repeats=.true.)
2133
2134 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
2135 description="controls the activation of the bond", &
2136 usage="&IMPROPER (ADD|REMOVE)", &
2137 enum_c_vals=s2a("ADD", "REMOVE"), &
2138 enum_i_vals=[do_add, do_remove], &
2139 default_i_val=do_add)
2140 CALL section_add_keyword(subsection, keyword)
2141 CALL keyword_release(keyword)
2142
2143 CALL keyword_create(keyword, __location__, name="ATOMS", &
2144 description="Specifies two atomic index united by a covalent bond", &
2145 usage="ATOMS {integer} {integer} {integer} {integer} ", type_of_var=integer_t, n_var=4, &
2146 repeats=.true.)
2147 CALL section_add_keyword(subsection, keyword)
2148 CALL keyword_release(keyword)
2149
2150 CALL section_add_subsection(section, subsection)
2151 CALL section_release(subsection)
2152
2153 ! ISOLATED ATOMS
2154 CALL section_create(subsection, __location__, name="ISOLATED_ATOMS", &
2155 description=" This section specifies the atoms that one considers isolated. Useful when present "// &
2156 "ions in solution.", n_keywords=1, n_subsections=0, repeats=.false.)
2157 CALL keyword_create(keyword, __location__, name="LIST", &
2158 description="Specifies a list of atomic indexes of the isolated ion", &
2159 usage="LIST {integer}", type_of_var=integer_t, n_var=-1, &
2160 repeats=.true.)
2161 CALL section_add_keyword(subsection, keyword)
2162 CALL keyword_release(keyword)
2163
2164 CALL section_add_subsection(section, subsection)
2165 CALL section_release(subsection)
2166
2167 ! Neighbor lists keys and printing handling the construction of NL for the connectivity
2168 CALL create_neighbor_lists_section(subsection)
2169 CALL section_add_subsection(section, subsection)
2170 CALL section_release(subsection)
2171
2172 CALL create_gen_print_section(subsection)
2173 CALL section_add_subsection(section, subsection)
2174 CALL section_release(subsection)
2175
2176 END SUBROUTINE create_generate_section
2177
2178! **************************************************************************************************
2179!> \brief Create the print gen section
2180!> \param section the section to create
2181!> \author teo
2182! **************************************************************************************************
2183 SUBROUTINE create_gen_print_section(section)
2184 TYPE(section_type), POINTER :: section
2185
2186 TYPE(section_type), POINTER :: print_key
2187
2188 cpassert(.NOT. ASSOCIATED(section))
2189 CALL section_create(section, __location__, name="print", &
2190 description="Section of possible print options in GENERATE code.", &
2191 n_keywords=0, n_subsections=1, repeats=.false.)
2192
2193 NULLIFY (print_key)
2194 CALL cp_print_key_section_create(print_key, __location__, "NEIGHBOR_LISTS", &
2195 description="Activates the printing of the neighbor lists used"// &
2196 " for generating the connectivity.", print_level=high_print_level, &
2197 filename="", unit_str="angstrom")
2198 CALL section_add_subsection(section, print_key)
2199 CALL section_release(print_key)
2200
2201 CALL cp_print_key_section_create(print_key, __location__, "SUBCELL", &
2202 description="Activates the printing of the subcells used for the "// &
2203 "generation of neighbor lists for connectivity.", &
2204 print_level=high_print_level, filename="__STD_OUT__")
2205 CALL section_add_subsection(section, print_key)
2206 CALL section_release(print_key)
2207
2208 END SUBROUTINE create_gen_print_section
2209
2210! **************************************************************************************************
2211!> \brief Specify keywords used to define connectivity
2212!> \param section the section to create
2213!> \param default ...
2214!> \author teo
2215! **************************************************************************************************
2216 SUBROUTINE connectivity_framework(section, default)
2217 TYPE(section_type), POINTER :: section
2218 INTEGER, INTENT(IN) :: default
2219
2220 TYPE(keyword_type), POINTER :: keyword
2221
2222 cpassert(ASSOCIATED(section))
2223 NULLIFY (keyword)
2224 CALL keyword_create(keyword, __location__, name="CONN_FILE_NAME", &
2225 variants=["CONN_FILE"], &
2226 description="Specifies the filename that contains the molecular connectivity.", &
2227 usage="CONN_FILE_NAME <FILENAME>", type_of_var=lchar_t)
2228 CALL section_add_keyword(section, keyword)
2229 CALL keyword_release(keyword)
2230
2231 CALL keyword_create(keyword, __location__, name="CONN_FILE_FORMAT", &
2232 variants=["CONNECTIVITY"], &
2233 description="Ways to determine and generate a molecules. "// &
2234 "Default is to use GENERATE", &
2235 usage="CONN_FILE_FORMAT (PSF|UPSF|MOL_SET|GENERATE|OFF|G87|G96|AMBER|USER)", &
2236 enum_c_vals=s2a("PSF", "UPSF", "MOL_SET", "GENERATE", "OFF", "G87", "G96", "AMBER", "USER"), &
2237 enum_i_vals=[do_conn_psf, &
2238 do_conn_psf_u, &
2241 do_conn_off, &
2242 do_conn_g87, &
2243 do_conn_g96, &
2244 do_conn_amb7, &
2245 do_conn_user], &
2246 enum_desc=s2a("Use a PSF file to determine the connectivity."// &
2247 " (support standard CHARMM/XPLOR and EXT CHARMM)", &
2248 "Read a PSF file in an unformatted way (useful for not so standard PSF).", &
2249 "Use multiple PSF (for now...) files to generate the whole system.", &
2250 "Use a simple distance criteria. (Look at keyword BONDPARM)", &
2251 "Do not generate molecules. (e.g. for QS or ill defined systems)", &
2252 "Use GROMOS G87 topology file.", &
2253 "Use GROMOS G96 topology file.", &
2254 "Use AMBER topology file for reading connectivity (compatible starting from AMBER V.7)", &
2255 "Allows the definition of molecules and residues based on the 5th and 6th column of "// &
2256 "the COORD section. This option can be handy for the definition of molecules with QS "// &
2257 "or to save memory in the case of very large systems (use PARA_RES off)."), &
2258 default_i_val=default)
2259 CALL section_add_keyword(section, keyword)
2260 CALL keyword_release(keyword)
2261 END SUBROUTINE connectivity_framework
2262
2263! **************************************************************************************************
2264!> \brief Create CP2K input section for the DFT+U method parameters
2265!> \param section ...
2266!> \date 01.11.2007
2267!> \author Matthias Krack (MK)
2268!> \version 1.0
2269! **************************************************************************************************
2270 SUBROUTINE create_dft_plus_u_section(section)
2271
2272 TYPE(section_type), POINTER :: section
2273
2274 TYPE(keyword_type), POINTER :: keyword
2275 TYPE(section_type), POINTER :: subsection
2276
2277 cpassert(.NOT. ASSOCIATED(section))
2278
2279 CALL section_create(section, __location__, &
2280 name="DFT_PLUS_U", &
2281 description="Define the parameters for a DFT+U run", &
2282 n_keywords=3, &
2283 n_subsections=1, &
2284 repeats=.false.)
2285 NULLIFY (keyword)
2286
2287 CALL keyword_create(keyword, __location__, &
2288 name="_SECTION_PARAMETERS_", &
2289 description="Controls the activation of the DFT+U section", &
2290 usage="&DFT_PLUS_U ON", &
2291 default_l_val=.false., &
2292 lone_keyword_l_val=.true.)
2293 CALL section_add_keyword(section, keyword)
2294 CALL keyword_release(keyword)
2295
2296 CALL keyword_create(keyword, __location__, &
2297 name="L", &
2298 description="Angular momentum quantum number of the "// &
2299 "orbitals to which the correction is applied", &
2300 repeats=.false., &
2301 n_var=1, &
2302 type_of_var=integer_t, &
2303 default_i_val=-1, &
2304 usage="L 2")
2305 CALL section_add_keyword(section, keyword)
2306 CALL keyword_release(keyword)
2307
2308 CALL keyword_create(keyword, __location__, &
2309 name="U_MINUS_J", &
2310 variants=["U_EFF"], &
2311 description="Effective parameter U(eff) = U - J", &
2312 repeats=.false., &
2313 n_var=1, &
2314 type_of_var=real_t, &
2315 default_r_val=0.0_dp, &
2316 unit_str="au_e", &
2317 usage="U_MINUS_J [eV] 1.4")
2318 CALL section_add_keyword(section, keyword)
2319 CALL keyword_release(keyword)
2320
2321 CALL keyword_create(keyword, __location__, &
2322 name="N", &
2323 description="principal quantum number of the "// &
2324 "orbitals to which the correction is applied. Ignored unless pwdft is used for the calculations", &
2325 repeats=.false., &
2326 n_var=1, &
2327 type_of_var=integer_t, &
2328 default_i_val=-1, &
2329 usage="N 2")
2330 CALL section_add_keyword(section, keyword)
2331 CALL keyword_release(keyword)
2332
2333 CALL keyword_create(keyword, __location__, &
2334 name="U", &
2335 description="U parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2336 repeats=.false., &
2337 n_var=1, &
2338 type_of_var=real_t, &
2339 default_r_val=0.0_dp, &
2340 unit_str="au_e", &
2341 usage="U [eV] 1.4")
2342 CALL section_add_keyword(section, keyword)
2343 CALL keyword_release(keyword)
2344
2345 CALL keyword_create(keyword, __location__, &
2346 name="J", &
2347 description="J parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2348 repeats=.false., &
2349 n_var=1, &
2350 type_of_var=real_t, &
2351 default_r_val=0.0_dp, &
2352 unit_str="au_e", &
2353 usage="J [eV] 1.4")
2354 CALL section_add_keyword(section, keyword)
2355 CALL keyword_release(keyword)
2356
2357 CALL keyword_create(keyword, __location__, &
2358 name="alpha", &
2359 description="alpha parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2360 repeats=.false., &
2361 n_var=1, &
2362 type_of_var=real_t, &
2363 default_r_val=0.0_dp, &
2364 unit_str="au_e", &
2365 usage="alpha [eV] 1.4")
2366 CALL section_add_keyword(section, keyword)
2367 CALL keyword_release(keyword)
2368
2369 CALL keyword_create(keyword, __location__, &
2370 name="beta", &
2371 description="beta parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2372 repeats=.false., &
2373 n_var=1, &
2374 type_of_var=real_t, &
2375 default_r_val=0.0_dp, &
2376 unit_str="au_e", &
2377 usage="beta [eV] 1.4")
2378 CALL section_add_keyword(section, keyword)
2379 CALL keyword_release(keyword)
2380
2381 CALL keyword_create(keyword, __location__, &
2382 name="J0", &
2383 description="J0 parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2384 repeats=.false., &
2385 n_var=1, &
2386 type_of_var=real_t, &
2387 default_r_val=0.0_dp, &
2388 unit_str="au_e", &
2389 usage="J0 [eV] 1.4")
2390 CALL section_add_keyword(section, keyword)
2391 CALL keyword_release(keyword)
2392
2393 CALL keyword_create(keyword, __location__, &
2394 name="occupation", &
2395 description="number of electrons in the hubbard shell. Ignored unless pwdft is used", &
2396 repeats=.false., &
2397 n_var=1, &
2398 type_of_var=real_t, &
2399 default_r_val=0.0_dp, &
2400 usage="occupation 6")
2401 CALL section_add_keyword(section, keyword)
2402 CALL keyword_release(keyword)
2403
2404 CALL keyword_create(keyword, __location__, &
2405 name="U_RAMPING", &
2406 description="Increase the effective U parameter stepwise using the specified "// &
2407 "increment until the target value given by U_MINUS_J is reached.", &
2408 repeats=.false., &
2409 n_var=1, &
2410 type_of_var=real_t, &
2411 default_r_val=0.0_dp, &
2412 unit_str="au_e", &
2413 usage="U_RAMPING [eV] 0.1")
2414 CALL section_add_keyword(section, keyword)
2415 CALL keyword_release(keyword)
2416
2417 CALL keyword_create(keyword, __location__, &
2418 name="EPS_U_RAMPING", &
2419 description="Threshold value (SCF convergence) for incrementing the effective "// &
2420 "U value when U ramping is active.", &
2421 repeats=.false., &
2422 n_var=1, &
2423 type_of_var=real_t, &
2424 default_r_val=1.0e-5_dp, &
2425 usage="EPS_U_RAMPING 1.0E-6")
2426 CALL section_add_keyword(section, keyword)
2427 CALL keyword_release(keyword)
2428
2429 CALL keyword_create(keyword, __location__, &
2430 name="INIT_U_RAMPING_EACH_SCF", &
2431 description="Set the initial U ramping value to zero before each wavefunction optimisation. "// &
2432 "The default is to apply U ramping only for the initial wavefunction optimisation.", &
2433 repeats=.false., &
2434 default_l_val=.false., &
2435 lone_keyword_l_val=.true., &
2436 usage="INIT_U_RAMPING_EACH_SCF on")
2437 CALL section_add_keyword(section, keyword)
2438 CALL keyword_release(keyword)
2439
2440 NULLIFY (subsection)
2441
2442 CALL section_create(subsection, __location__, &
2443 name="ENFORCE_OCCUPATION", &
2444 description="Enforce and control a special (initial) orbital occupation. "// &
2445 "Note, this feature works only for the methods MULLIKEN and LOWDIN. "// &
2446 "It should only be used to prepare an initial configuration. An "// &
2447 "inadequate parameter choice can easily inhibit SCF convergence.", &
2448 n_keywords=5, &
2449 n_subsections=0, &
2450 repeats=.false.)
2451
2452 CALL keyword_create(keyword, __location__, &
2453 name="_SECTION_PARAMETERS_", &
2454 description="Controls the activation of the ENFORCE_OCCUPATION section", &
2455 usage="&ENFORCE_OCCUPATION ON", &
2456 default_l_val=.false., &
2457 lone_keyword_l_val=.true.)
2458 CALL section_add_keyword(subsection, keyword)
2459 CALL keyword_release(keyword)
2460
2461 CALL keyword_create(keyword, __location__, name="NELEC", &
2462 variants=["N_ELECTRONS"], &
2463 description="Number of alpha and beta electrons. An occupation (per spin) smaller than 0.5 is ignored.", &
2464 repeats=.false., &
2465 n_var=-1, &
2466 type_of_var=real_t, &
2467 default_r_val=0.0_dp, &
2468 usage="NELEC 5.0 4.0")
2469 CALL section_add_keyword(subsection, keyword)
2470 CALL keyword_release(keyword)
2471
2472 CALL keyword_create(keyword, __location__, &
2473 name="ORBITALS", &
2474 variants=["M"], &
2475 description="Select orbitals and occupation order. An input of 1 to 2*L+1 integer values in "// &
2476 "the range -L to L defining the M values of the spherical orbitals is expected.", &
2477 repeats=.false., &
2478 n_var=-1, &
2479 type_of_var=integer_t, &
2480 default_i_val=0, &
2481 usage="ORBITALS 0 +1 -1")
2482 CALL section_add_keyword(subsection, keyword)
2483 CALL keyword_release(keyword)
2484
2485 CALL keyword_create(keyword, __location__, &
2486 name="EPS_SCF", &
2487 description="The occupation constraint is enforced until this threshold value "// &
2488 "for the SCF convergence criterion is reached", &
2489 repeats=.false., &
2490 n_var=1, &
2491 type_of_var=real_t, &
2492 default_r_val=1.0e30_dp, &
2493 usage="EPS_SCF 0.001")
2494 CALL section_add_keyword(subsection, keyword)
2495 CALL keyword_release(keyword)
2496
2497 CALL keyword_create(keyword, __location__, &
2498 name="MAX_SCF", &
2499 description="The occupation constraint is applied for this number of initial SCF iterations", &
2500 repeats=.false., &
2501 n_var=1, &
2502 type_of_var=integer_t, &
2503 default_i_val=-1, &
2504 usage="MAX_SCF 5")
2505 CALL section_add_keyword(subsection, keyword)
2506 CALL keyword_release(keyword)
2507
2508 CALL keyword_create(keyword, __location__, &
2509 name="SMEAR", &
2510 description="The occupation constraint is applied with smearing", &
2511 repeats=.false., &
2512 default_l_val=.false., &
2513 lone_keyword_l_val=.true., &
2514 usage="SMEAR ON")
2515 CALL section_add_keyword(subsection, keyword)
2516 CALL keyword_release(keyword)
2517
2518 CALL section_add_subsection(section, subsection)
2519 CALL section_release(subsection)
2520
2521 END SUBROUTINE create_dft_plus_u_section
2522
2523END MODULE input_cp2k_subsys
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public guidon2010
integer, save, public goedecker1996
integer, save, public vandevondele2005a
integer, save, public vandevondele2007
integer, save, public hartwigsen1998
integer, save, public krack2005
Handles all functions related to the CELL.
Definition cell_types.F:15
integer, parameter, public use_perd_xyz
Definition cell_types.F:42
integer, parameter, public cell_sym_monoclinic
Definition cell_types.F:29
integer, parameter, public use_perd_y
Definition cell_types.F:42
integer, parameter, public cell_sym_triclinic
Definition cell_types.F:29
integer, parameter, public cell_sym_tetragonal_ab
Definition cell_types.F:29
integer, parameter, public use_perd_xz
Definition cell_types.F:42
integer, parameter, public cell_sym_rhombohedral
Definition cell_types.F:29
integer, parameter, public use_perd_x
Definition cell_types.F:42
integer, parameter, public cell_sym_tetragonal_ac
Definition cell_types.F:29
integer, parameter, public use_perd_z
Definition cell_types.F:42
integer, parameter, public use_perd_yz
Definition cell_types.F:42
integer, parameter, public use_perd_none
Definition cell_types.F:42
integer, parameter, public cell_sym_hexagonal_gamma_60
Definition cell_types.F:29
integer, parameter, public cell_sym_orthorhombic
Definition cell_types.F:29
integer, parameter, public cell_sym_none
Definition cell_types.F:29
integer, parameter, public cell_sym_hexagonal_gamma_120
Definition cell_types.F:29
integer, parameter, public cell_sym_monoclinic_gamma_ab
Definition cell_types.F:29
integer, parameter, public cell_sym_cubic
Definition cell_types.F:29
integer, parameter, public use_perd_xy
Definition cell_types.F:42
integer, parameter, public cell_sym_tetragonal_bc
Definition cell_types.F:29
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public debug_print_level
integer, parameter, public medium_print_level
integer, parameter, public high_print_level
subroutine, public cp_print_key_section_create(print_key_section, location, name, description, print_level, each_iter_names, each_iter_values, add_last, filename, common_iter_levels, citations, unit_str)
creates a print_key section
unit conversion facility
Definition cp_units.F:30
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Definition cp_units.F:1149
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public do_remove
integer, parameter, public do_conn_g87
integer, parameter, public do_coord_crd
integer, parameter, public do_skip_13
integer, parameter, public do_coord_xtl
integer, parameter, public do_conn_psf_u
integer, parameter, public do_bondparm_covalent
integer, parameter, public dump_pdb
integer, parameter, public do_conn_off
integer, parameter, public do_bondparm_vdw
integer, parameter, public do_conn_user
integer, parameter, public do_coord_cif
integer, parameter, public do_conn_amb7
integer, parameter, public do_cell_cif
integer, parameter, public do_cell_xsc
integer, parameter, public do_conn_psf
integer, parameter, public do_skip_12
integer, parameter, public do_add
integer, parameter, public do_conn_generate
integer, parameter, public do_conn_mol_set
integer, parameter, public do_conn_g96
integer, parameter, public do_coord_pdb
integer, parameter, public do_skip_11
integer, parameter, public do_cell_cp2k
integer, parameter, public do_skip_14
integer, parameter, public gaussian
integer, parameter, public do_coord_xyz
integer, parameter, public do_coord_off
integer, parameter, public do_coord_g96
integer, parameter, public do_coord_cp2k
recursive subroutine, public create_colvar_section(section, skip_recursive_colvar)
creates the colvar section
creates the mm section of the input
subroutine, public create_neighbor_lists_section(section)
This section specifies the input parameters for generation of neighbor lists.
builds the subsystem section of the input
subroutine, public create_subsys_section(section)
creates the structure of a subsys, i.e. a full set of atoms+mol+bounds+cell
subroutine, public create_rng_section(section)
Creates the random number restart section.
subroutine, public create_basis_section(section)
Creates the &BASIS section.
subroutine, public create_structure_data_section(print_key)
creates structure data section for output.. both subsys (for initialization) and motion section....
subroutine, public create_cell_section(section, periodic)
creates the cell section
represents keywords in an input
subroutine, public keyword_release(keyword)
releases the given keyword (see doc/ReferenceCounting.html)
subroutine, public keyword_create(keyword, location, name, description, usage, type_of_var, n_var, repeats, variants, default_val, default_l_val, default_r_val, default_lc_val, default_c_val, default_i_val, default_l_vals, default_r_vals, default_c_vals, default_i_vals, lone_keyword_val, lone_keyword_l_val, lone_keyword_r_val, lone_keyword_c_val, lone_keyword_i_val, lone_keyword_l_vals, lone_keyword_r_vals, lone_keyword_c_vals, lone_keyword_i_vals, enum_c_vals, enum_i_vals, enum, enum_strict, enum_desc, unit_str, citations, deprecation_notice, removed)
creates a keyword object
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_create(section, location, name, description, n_keywords, n_subsections, repeats, citations, deprecation_notice)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
subroutine, public section_add_subsection(section, subsection)
adds a subsection to the given section
recursive subroutine, public section_release(section)
releases the given keyword list (see doc/ReferenceCounting.html)
a wrapper for basic fortran types.
integer, parameter, public real_t
integer, parameter, public lchar_t
integer, parameter, public char_t
integer, parameter, public integer_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Definition of physical constants:
Definition physcon.F:68
real(kind=dp), parameter, public bohr
Definition physcon.F:147
Utilities for string manipulations.
character(len=1), parameter, public newline
represent a keyword in the input
represent a section of the input file