52#include "./base/base_uses.f90"
57 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
58 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_subsys'
76 INTEGER,
INTENT(IN),
OPTIONAL :: periodic
80 cpassert(.NOT.
ASSOCIATED(section))
82 description=
"Input parameters needed to set up the simulation cell. "// &
83 "Simple products and fractions combined with functions of a single "// &
84 "number can be used like 2/3, 0.3*COS(60) or -SQRT(3)/2. The functions "// &
85 "COS, EXP, LOG, LOG10, SIN, SQRT, and TAN are available."//
newline//
newline// &
86 "Cell settings are parsed in the following precedence order:"//
newline// &
87 "1. The external file set by CELL_FILE_NAME with a CELL_FILE_FORMAT;"//
newline// &
88 "2. The lengths and angles of cell vectors set by ABC and ALPHA_BETA_GAMMA;"//
newline// &
89 "3. The vectors set by A, B, C together;"//
newline// &
90 "4. If none above exist, the external file set by TOPOLOGY/COORD_FILE_NAME with "// &
91 "suitable TOPOLOGY/COORD_FILE_FORMAT may also be parsed for FORCE_EVAL/SUBSYS/CELL "// &
92 "but not for FORCE_EVAL/QMMM/CELL.")
93 CALL create_cell_section_low(section, periodic)
97 description=
"Input parameters needed to set up the reference cell for "// &
98 "FORCE_EVAL/SUBSYS/CELL. This option can be used to keep the FFT grid "// &
99 "fixed while running a cell optimization or NpT molecular dynamics. "// &
100 "Check the &CELL section for further details.")
101 CALL create_cell_section_low(subsection, periodic)
113 SUBROUTINE create_cell_section_low(section, periodic)
115 INTEGER,
INTENT(IN),
OPTIONAL :: periodic
117 INTEGER :: my_periodic
121 IF (
PRESENT(periodic)) my_periodic = periodic
125 description=
"Specify the Cartesian components for the cell vector A. "// &
126 "This defines the first column of the h matrix. "// &
127 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
128 usage=
"A 10.000 0.000 0.000", unit_str=
"angstrom", &
129 n_var=3, type_of_var=
real_t, repeats=.false.)
134 description=
"Specify the Cartesian components for the cell vector B. "// &
135 "This defines the second column of the h matrix. "// &
136 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
137 usage=
"B 0.000 10.000 0.000", unit_str=
"angstrom", &
138 n_var=3, type_of_var=
real_t, repeats=.false.)
143 description=
"Specify the Cartesian components for the cell vector C. "// &
144 "This defines the third column of the h matrix. "// &
145 "Ignored if the keywords ABC or CELL_FILE_NAME are used.", &
146 usage=
"C 0.000 0.000 10.000", unit_str=
"angstrom", &
147 n_var=3, type_of_var=
real_t, repeats=.false.)
152 description=
"Specify the lengths of the cell vectors A, B, and C, which"// &
153 " defines the diagonal elements of h matrix for an orthorhombic cell."// &
154 " For non-orthorhombic cells it is possible either to specify the angles "// &
155 "ALPHA, BETA, GAMMA via ALPHA_BETA_GAMMA keyword or alternatively use the keywords "// &
156 "A, B, and C. The convention is that A lies along the X-axis, B is in the XY plane. "// &
157 "Ignored if CELL_FILE_NAME is used.", &
158 usage=
"ABC 10.000 10.000 10.000", unit_str=
"angstrom", &
159 n_var=3, type_of_var=
real_t, repeats=.false.)
163 CALL keyword_create(keyword, __location__, name=
"ALPHA_BETA_GAMMA", &
164 variants=[
"ANGLES"], &
165 description=
"Specify the angles between the vectors A, B and C when using the ABC keyword. "// &
166 "The convention is that A lies along the X-axis, B is in the XY plane. "// &
167 "ALPHA is the angle between B and C, BETA is the angle between A and C and "// &
168 "GAMMA is the angle between A and B.", &
169 usage=
"ALPHA_BETA_GAMMA [deg] 90.0 90.0 120.0", unit_str=
"deg", &
170 n_var=3, default_r_vals=[
cp_unit_to_cp2k(
value=90.0_dp, unit_str=
"deg"), &
177 CALL keyword_create(keyword, __location__, name=
"CELL_FILE_NAME", &
178 description=
"The external file from which cell is parsed ", &
179 repeats=.false., usage=
"CELL_FILE_NAME <CHARACTER>", &
184 CALL keyword_create(keyword, __location__, name=
"CELL_FILE_FORMAT", &
185 description=
"Format of the external file from which "// &
186 "cell is parsed. If the format specifies a cell by "// &
187 "lengths and angles of three vectors, then a cell "// &
188 "matrix is constructed with the convention that A "// &
189 "lies along the X-axis, B is in the XY plane. ALPHA "// &
190 "is the angle between B and C, BETA is the angle "// &
191 "between A and C, and GAMMA is the angle between A and B.", &
192 usage=
"CELL_FILE_FORMAT (CP2K|CIF|XSC|EXTXYZ|XYZ|PDB)", &
193 enum_c_vals=
s2a(
"CP2K",
"CIF",
"XSC",
"EXTXYZ",
"XYZ",
"PDB"), &
195 enum_desc=
s2a(
"Cell info in the CP2K native format", &
196 "Cell info from CIF file (from fields `_cell_length_a` or `_cell.length_a`, etc)", &
197 "Cell info in the XSC format (NAMD)", &
198 "Cell info as `lattice=...` field in the comment line of Extended XYZ format", &
199 "Alias for Extended XYZ", &
200 "Cell info in the `CRYST1` record of PDB format"), &
206 description=
"Policy for transforming a general input cell to CP2K's internal "// &
207 "convention that A lies along the X-axis and B is in the XY plane. AUTO is "// &
208 "conservative and keeps the input orientation when a silent transformation "// &
209 "could affect Cartesian or direction-dependent input. TRUE explicitly requests "// &
210 "canonicalization and transforms supported cell-dependent input. FALSE always "// &
211 "keeps the input orientation.", &
212 usage=
"CANONICALIZE AUTO", &
213 enum_c_vals=
s2a(
"AUTO",
"TRUE",
"FALSE",
"T",
"F",
".TRUE.",
".FALSE."), &
217 enum_desc=
s2a(
"Keep the input orientation unless canonicalization is unambiguously safe", &
218 "Explicitly canonicalize the input cell", &
219 "Keep the input cell orientation", &
223 "Alias for FALSE"), &
229 description=
"Specify the directions for which periodic boundary conditions (PBC) will be applied. "// &
230 "Important notice: This applies to the generation of the pair lists as well as to the "// &
231 "application of the PBCs to positions. "// &
232 "See the POISSON section to specify the periodicity used for the electrostatics. "// &
233 "Typically the settings should be the same.", &
234 usage=
"PERIODIC (x|y|z|xy|xz|yz|xyz|none)", &
235 enum_c_vals=
s2a(
"x",
"y",
"z",
"xy",
"xz",
"yz",
"xyz",
"none"), &
239 default_i_val=my_periodic)
243 CALL keyword_create(keyword, __location__, name=
"MULTIPLE_UNIT_CELL", &
244 description=
"Specifies the numbers of repetition in space (X, Y, Z) of the defined cell, "// &
245 "assuming it as a unit cell. This keyword affects only the CELL specification. The same keyword "// &
246 "in SUBSYS%TOPOLOGY%MULTIPLE_UNIT_CELL should be modified in order to affect the coordinates "// &
247 "specification.", usage=
"MULTIPLE_UNIT_CELL 1 1 1", &
248 n_var=3, default_i_vals=[1, 1, 1], repeats=.false.)
253 keyword, __location__, name=
"SYMMETRY", &
254 description=
"Imposes an initial cell symmetry, according to the convention "// &
255 "that A lies along the X-axis, B is in the XY plane. After the "// &
256 "input cell information is parsed, the symmetry is enforced by "// &
257 "reconstructing the cell matrix from lengths and angles of the "// &
258 "cell vectors, taking averages if necessary. This process does "// &
259 "not affect input atomic coordinates; in case a space group is "// &
260 "to be detected and preserved for an optimization task, atomic "// &
261 "coordinates should correspond to cell vectors already obeying "// &
262 "the convention mentioned above.", &
263 usage=
"SYMMETRY monoclinic", &
264 enum_desc=
s2a(
"No cell symmetry", &
265 "Triclinic (a ≠ b ≠ c ≠ a, α ≠ β ≠ γ ≠ α ≠ 90°)", &
266 "Monoclinic (a ≠ b ≠ c, α = γ = 90°, β ≠ 90°)", &
267 "Monoclinic (a = b ≠ c, α = β = 90°, γ ≠ 90°)", &
268 "Orthorhombic (a ≠ b ≠ c, α = β = γ = 90°)", &
269 "Tetragonal (a = b ≠ c, α = β = γ = 90°)", &
270 "Tetragonal (a = c ≠ b, α = β = γ = 90°)", &
271 "Tetragonal (a ≠ b = c, α = β = γ = 90°)", &
272 "Tetragonal (alias for TETRAGONAL_AB)", &
273 "Rhombohedral (a = b = c, α = β = γ ≠ 90°)", &
274 "Hexagonal (alias for HEXAGONAL_GAMMA_60)", &
275 "Hexagonal (a = b ≠ c, α = β = 90°, γ = 60°)", &
276 "Hexagonal (a = b ≠ c, α = β = 90°, γ = 120°)", &
277 "Cubic (a = b = c, α = β = γ = 90°)"), &
278 enum_c_vals=
s2a(
"NONE",
"TRICLINIC",
"MONOCLINIC",
"MONOCLINIC_GAMMA_AB",
"ORTHORHOMBIC", &
279 "TETRAGONAL_AB",
"TETRAGONAL_AC",
"TETRAGONAL_BC",
"TETRAGONAL",
"RHOMBOHEDRAL", &
280 "HEXAGONAL",
"HEXAGONAL_GAMMA_60",
"HEXAGONAL_GAMMA_120",
"CUBIC"), &
289 END SUBROUTINE create_cell_section_low
301 cpassert(.NOT.
ASSOCIATED(section))
303 description=
"Information to initialize the parallel random number generator streams", &
304 n_keywords=1, n_subsections=0, repeats=.false.)
307 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
308 description=
"Specify an initial RNG stream record", repeats=.true., &
309 usage=
"{RNG record string}", type_of_var=
lchar_t)
327 cpassert(.NOT.
ASSOCIATED(section))
329 description=
"a subsystem: coordinates, topology, molecules and cell", &
330 n_keywords=1, n_subsections=9, repeats=.false.)
334 description=
"Initial seed for the (pseudo)random number generator for the "// &
335 "Wiener process employed by the Langevin dynamics. Exactly 1 or 6 positive "// &
336 "integer values are expected. A single value is replicated to fill up the "// &
337 "full seed array with 6 numbers.", &
340 usage=
"SEED {INTEGER} .. {INTEGER}", &
341 default_i_vals=[12345])
355 CALL create_coord_section(subsection)
359 CALL create_velocity_section(subsection)
363 CALL create_kind_section(subsection)
367 CALL create_topology_section(subsection)
375 CALL create_multipole_section(subsection)
379 CALL create_shell_coord_section(subsection)
383 CALL create_shell_vel_section(subsection)
386 CALL create_core_coord_section(subsection)
390 CALL create_core_vel_section(subsection)
394 CALL create_subsys_print_section(subsection)
405 SUBROUTINE create_subsys_print_section(section)
411 NULLIFY (print_key, keyword)
412 cpassert(.NOT.
ASSOCIATED(section))
414 description=
"Controls printings related to the subsys", &
415 n_keywords=0, n_subsections=9, repeats=.false.)
418 description=
"controls the output of the atomic coordinates when setting up the"// &
419 " force environment. For printing coordinates during MD or GEO refer to the keyword"// &
420 " trajectory.", unit_str=
"angstrom", &
430 description=
"Controls the printout of the interatomic distances when setting up the "// &
431 "force environment", unit_str=
"angstrom", &
433 CALL keyword_create(keyword, __location__, name=
"CHECK_INTERATOMIC_DISTANCES", &
434 description=
"Minimum allowed distance between two atoms. "// &
435 "A warning is printed, if a smaller interatomic distance is encountered. "// &
436 "The check is disabled for the threshold value 0 which is the default "// &
437 "for systems with more than 2000 atoms (otherwise 0.5 A). "// &
438 "The run is aborted, if an interatomic distance is smaller than the absolute "// &
439 "value of a negative threshold value.", &
440 default_r_val=0.5_dp*
bohr, unit_str=
"angstrom")
447 "controls the printing of information in the topology settings", &
450 description=
"Prints information when parsing XTL files.", &
451 default_l_val=.false., lone_keyword_l_val=.true.)
455 description=
"Prints information when parsing CIF files.", &
456 default_l_val=.false., lone_keyword_l_val=.true.)
460 description=
"Prints information when parsing PDB files.", &
461 default_l_val=.false., lone_keyword_l_val=.true.)
465 description=
"Prints information when parsing XYZ files.", &
466 default_l_val=.false., lone_keyword_l_val=.true.)
470 description=
"Prints information when parsing PSF files.", &
471 default_l_val=.false., lone_keyword_l_val=.true.)
475 description=
"Prints information when parsing ABER topology files.", &
476 default_l_val=.false., lone_keyword_l_val=.true.)
480 description=
"Prints information when parsing G96 files.", &
481 default_l_val=.false., lone_keyword_l_val=.true.)
485 description=
"Prints information when parsing CRD files.", &
486 default_l_val=.false., lone_keyword_l_val=.true.)
490 description=
"Prints information when parsing GROMOS topology files.", &
491 default_l_val=.false., lone_keyword_l_val=.true.)
495 description=
"Prints information regarding topology utilities", &
496 default_l_val=.false., lone_keyword_l_val=.true.)
499 CALL keyword_create(keyword, __location__, name=
"generate_info", &
500 description=
"Prints information regarding topology generation", &
501 default_l_val=.false., lone_keyword_l_val=.true.)
508 description=
"controls the output of the cell parameters", &
515 description=
"controls the output of information on the kinds", &
518 description=
"If the printkey is activated controls the printing of the"// &
519 " fist_potential, gth_potential, sgp_potential or all electron"// &
520 " potential information", &
521 default_l_val=.false., lone_keyword_l_val=.true.)
525 description=
"If the printkey is activated controls the printing of basis set information", &
526 default_l_val=.false., lone_keyword_l_val=.true.)
529 CALL keyword_create(keyword, __location__, name=
"se_parameters", &
530 description=
"If the printkey is activated controls the printing of the semi-empirical parameters.", &
531 default_l_val=.false., lone_keyword_l_val=.true.)
538 description=
"controls the output of symmetry information", &
541 description=
"Assume the system is an isolated molecule", &
542 default_l_val=.false., lone_keyword_l_val=.true.)
546 description=
"Accuracy required for symmetry detection", &
547 default_r_val=1.0e-4_dp)
550 CALL keyword_create(keyword, __location__, name=
"STANDARD_ORIENTATION", &
551 description=
"Print molecular coordinates in standard orientation", &
552 default_l_val=.false., lone_keyword_l_val=.true.)
556 description=
"Print molecular inertia tensor", &
557 default_l_val=.false., lone_keyword_l_val=.true.)
560 CALL keyword_create(keyword, __location__, name=
"SYMMETRY_ELEMENTS", &
561 description=
"Print symmetry elements", &
562 default_l_val=.false., lone_keyword_l_val=.true.)
566 description=
"Print all symmetry information", &
567 default_l_val=.false., lone_keyword_l_val=.true.)
570 CALL keyword_create(keyword, __location__, name=
"ROTATION_MATRICES", &
571 description=
"All the rotation matrices of the point group", &
572 default_l_val=.false.)
575 CALL keyword_create(keyword, __location__, name=
"CHECK_SYMMETRY", &
576 description=
"Check if calculated symmetry has expected value."// &
577 " Use either Schoenfliess or Hermann-Maugin symbols", &
578 default_c_val=
"NONE")
585 description=
"controls the output of information on the molecules", &
591 description=
"controls the output of radii information", unit_str=
"angstrom", &
594 CALL keyword_create(keyword, __location__, name=
"core_charges_radii", &
595 description=
"If the printkey is activated controls the printing of the radii of the core charges", &
596 default_l_val=.true., lone_keyword_l_val=.true.)
601 description=
"If the printkey is activated controls the printing of the core gaussian radii", &
602 default_l_val=.true., lone_keyword_l_val=.true.)
607 description=
"If the printkey is activated controls the printing of the set_radii", &
608 default_l_val=.true., lone_keyword_l_val=.true.)
613 description=
"If the printkey is activated controls the printing of the kind_radii", &
614 default_l_val=.true., lone_keyword_l_val=.true.)
618 CALL keyword_create(keyword, __location__, name=
"core_charge_radii", &
619 description=
"If the printkey is activated controls the printing of the core_charge_radii", &
620 default_l_val=.true., lone_keyword_l_val=.true.)
625 description=
"If the printkey is activated controls the printing of the "// &
626 "pseudo potential local radii", &
627 default_l_val=.true., lone_keyword_l_val=.true.)
632 description=
"If the printkey is activated controls the printing of the "// &
633 "pseudo potential non local radii", &
634 default_l_val=.true., lone_keyword_l_val=.true.)
638 CALL keyword_create(keyword, __location__, name=
"gapw_prj_radii", &
639 description=
"If the printkey is activated controls the printing of the gapw projector radii", &
640 default_l_val=.true., lone_keyword_l_val=.true.)
647 END SUBROUTINE create_subsys_print_section
654 SUBROUTINE create_multipole_section(section)
660 cpassert(.NOT.
ASSOCIATED(section))
662 description=
"Specifies the dipoles and quadrupoles for particles.", &
663 n_keywords=1, n_subsections=0, repeats=.false.)
665 NULLIFY (keyword, subsection)
667 description=
"Specifies the dipoles of the particles.", &
668 n_keywords=1, n_subsections=0, repeats=.false.)
669 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
670 description=
"The dipole components for each atom in the format: "// &
671 "$D_x \ D_y \ D_z$", &
672 repeats=.true., usage=
"{Real} {Real} {Real}", &
673 type_of_var=
real_t, n_var=3)
679 CALL section_create(subsection, __location__, name=
"quadrupoles", &
680 description=
"Specifies the quadrupoles of the particles.", &
681 n_keywords=1, n_subsections=0, repeats=.false.)
682 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
683 description=
"The quadrupole components for each atom in the format: "// &
684 "$Q_{xx} \ Q_{xy} \ Q_{xz} \ Q_{yy} \ Q_{yz} \ Q_{zz}$", &
685 repeats=.true., usage=
"{Real} {Real} {Real} {Real} {Real} {Real}", &
686 type_of_var=
real_t, n_var=6)
692 END SUBROUTINE create_multipole_section
704 cpassert(.NOT.
ASSOCIATED(print_key))
709 description=
"Request the printing of special structure data during a structure "// &
710 "optimization (in MOTION%PRINT) or when setting up a subsys (in SUBSYS%PRINT).", &
713 CALL keyword_create(keyword, __location__, name=
"POSITION", variants=[
"POS"], &
714 description=
"Print the position vectors in Cartesian coordinates of the atoms specified "// &
715 "by a list of their indices", &
716 usage=
"POSITION {integer} {integer} {integer}..{integer}", n_var=-1, repeats=.true., &
721 CALL keyword_create(keyword, __location__, name=
"POSITION_SCALED", variants=[
"POS_SCALED"], &
722 description=
"Print the position vectors in scaled coordinates of the atoms specified "// &
723 "by a list of their indices", &
724 usage=
"POSITION_SCALED {integer} {integer} {integer}..{integer}", n_var=-1, repeats=.true., &
729 CALL keyword_create(keyword, __location__, name=
"DISTANCE", variants=[
"DIS"], &
730 description=
"Print the distance between the atoms a and b specified by their indices", &
731 usage=
"DISTANCE {integer} {integer}", n_var=2, repeats=.true., &
736 CALL keyword_create(keyword, __location__, name=
"ANGLE", variants=[
"ANG"], &
737 description=
"Print the angle formed by the atoms specified by their indices", &
738 usage=
"ANGLE {integer} {integer} {integer}", n_var=3, repeats=.true., &
743 CALL keyword_create(keyword, __location__, name=
"DIHEDRAL_ANGLE", variants=
s2a(
"DIHEDRAL",
"DIH"), &
744 description=
"Print the dihedral angle between the planes defined by the atoms (a,b,c) and "// &
745 "the atoms (b,c,d) specified by their indices", &
746 usage=
"DIHEDRAL_ANGLE {integer} {integer} {integer} {integer}", n_var=4, &
758 SUBROUTINE create_velocity_section(section)
763 cpassert(.NOT.
ASSOCIATED(section))
765 description=
"The velocities for simple systems or "// &
766 "the centroid mode in PI runs, xyz format by default", &
767 n_keywords=1, n_subsections=0, repeats=.false.)
770 description=
"Specify the units of measurement for the velocities "// &
771 "(currently works only for the path integral code). "// &
772 "All available CP2K units can be used.", &
773 usage=
"PINT_UNIT angstrom*au_t^-1", &
774 default_c_val=
"bohr*au_t^-1")
778 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
779 description=
"The atomic velocities in the format: "// &
780 "$ v_x \ v_y \ v_z$ "// &
781 "The same order as for the atomic coordinates is assumed.", &
782 repeats=.true., usage=
"{Real} {Real} {Real}", &
783 type_of_var=
real_t, n_var=3)
787 END SUBROUTINE create_velocity_section
794 SUBROUTINE create_shell_vel_section(section)
799 cpassert(.NOT.
ASSOCIATED(section))
800 CALL section_create(section, __location__, name=
"shell_velocity", &
801 description=
"The velocities of shells for shell-model potentials, "// &
803 n_keywords=1, n_subsections=0, repeats=.false.)
806 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
807 description=
"The shell particle velocities in the format: "// &
808 "$v_x \ v_y \ v_z$ "// &
809 "The same order as for the shell particle coordinates is assumed.", &
810 repeats=.true., usage=
"{Real} {Real} {Real}", &
811 type_of_var=
real_t, n_var=3)
815 END SUBROUTINE create_shell_vel_section
822 SUBROUTINE create_core_vel_section(section)
827 cpassert(.NOT.
ASSOCIATED(section))
828 CALL section_create(section, __location__, name=
"core_velocity", &
829 description=
"The velocities of cores for shell-model potentials, "// &
831 n_keywords=1, n_subsections=0, repeats=.false.)
834 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
835 description=
"The core particle velocities in the format: "// &
836 "$v_x \ v_y \ v_z$ "// &
837 "The same order as for the core particle coordinates is assumed.", &
838 repeats=.true., usage=
"{Real} {Real} {Real}", &
839 type_of_var=
real_t, n_var=3)
843 END SUBROUTINE create_core_vel_section
850 SUBROUTINE create_potential_section(section)
856 description=
"Section used to specify Potentials.", &
857 n_keywords=1, n_subsections=0, repeats=.false.)
859 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
860 description=
"CP2K Pseudo Potential Standard Format (GTH, ALL)", &
861 repeats=.true., type_of_var=
lchar_t)
865 END SUBROUTINE create_potential_section
872 SUBROUTINE create_kgpot_section(section)
878 description=
"Section used to specify KG Potentials.", &
879 n_keywords=1, n_subsections=0, repeats=.false.)
881 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
882 description=
"CP2K KG TNADD Potential Standard Format (TNADD)", &
883 repeats=.true., type_of_var=
lchar_t)
887 END SUBROUTINE create_kgpot_section
900 description=
"Section used to specify a general basis set for QM calculations.", &
901 n_keywords=1, n_subsections=0, repeats=.true.)
905 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
906 description=
"The type of basis set defined in this section.", &
907 lone_keyword_c_val=
"Orbital", &
908 usage=
"Orbital", default_c_val=
"Orbital")
913 keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
914 repeats=.true., type_of_var=
lchar_t, &
915 description=
"CP2K Basis Set Standard Format:"//
newline//
newline// &
917 "Element symbol Name of the basis set Alias names"//
newline// &
918 "nset (repeat the following block of lines nset times)"//
newline// &
919 "n lmin lmax nexp nshell(lmin) nshell(lmin+1) ... nshell(lmax-1) nshell(lmax)"//
newline// &
920 "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// &
921 "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// &
925 "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// &
926 "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// &
929 "nset : Number of exponent sets"//
newline// &
930 "n : Principle quantum number (only for orbital label printing)"//
newline// &
931 "lmax : Maximum angular momentum quantum number l"//
newline// &
932 "lmin : Minimum angular momentum quantum number l"//
newline// &
933 "nshell(l): Number of shells for angular momentum quantum number l"//
newline// &
935 "c : Contraction coefficient"//
newline// &
947 SUBROUTINE create_coord_section(section)
952 cpassert(.NOT.
ASSOCIATED(section))
954 description=
"The coordinates for simple systems (like small QM cells) "// &
955 "are specified here by default using explicit XYZ coordinates. "// &
956 "Simple products and fractions combined with functions of a single "// &
957 "number can be used like 2/3, 0.3*COS(60) or -SQRT(3)/2. "// &
958 "More complex systems should be given via an external coordinate "// &
959 "file in the SUBSYS%TOPOLOGY section.", &
960 n_keywords=1, n_subsections=0, repeats=.false.)
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")
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.)
977 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
978 description=
"The atomic coordinates in the format:"//
newline//
newline// &
980 "The `MOLNAME` is optional. If not provided the molecule name "// &
981 "is internally created. All other fields after `MOLNAME` are simply ignored.", &
982 repeats=.true., usage=
"{{String} {Real} {Real} {Real} {String}}", &
986 END SUBROUTINE create_coord_section
993 SUBROUTINE create_shell_coord_section(section)
998 cpassert(.NOT.
ASSOCIATED(section))
1000 description=
"The shell 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.)
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")
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.)
1019 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1020 description=
"The shell particle coordinates in the format:"//
newline//
newline// &
1022 "The `ATOMIC_INDEX` refers to the atom the shell particle belongs to.", &
1023 repeats=.true., usage=
"{{String} {Real} {Real} {Real} {Integer}}", &
1028 END SUBROUTINE create_shell_coord_section
1035 SUBROUTINE create_core_coord_section(section)
1040 cpassert(.NOT.
ASSOCIATED(section))
1042 description=
"The core coordinates for the shell-model potentials"// &
1043 " xyz format with an additional column for the index of the corresponding particle", &
1044 n_keywords=1, n_subsections=0, repeats=.false.)
1047 description=
'Specify the unit of measurement for the coordinates in input'// &
1048 "All available CP2K units can be used.", &
1049 usage=
"UNIT angstrom", default_c_val=
"angstrom")
1054 description=
'Specify if the coordinates in input are scaled. '// &
1055 'When true, the coordinates are given in multiples of the lattice vectors.', &
1056 usage=
"SCALED F", default_l_val=.false., &
1057 lone_keyword_l_val=.true.)
1061 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1062 description=
"The core particle coordinates in the format:"//
newline//
newline// &
1064 "The `ATOMIC_INDEX` refers to the atom the core particle belongs to.", &
1065 repeats=.true., usage=
"{{String} {Real} {Real} {Real} {Integer}}", &
1070 END SUBROUTINE create_core_coord_section
1077 SUBROUTINE create_kind_section(section)
1083 cpassert(.NOT.
ASSOCIATED(section))
1086 description=
"Defines settings shared by atoms of the same kind, such as basis sets, "// &
1087 "pseudopotentials, all-electron treatment, and atom-centered grids.", &
1088 n_keywords=20, n_subsections=1, repeats=.true.)
1092 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
1093 description=
"The name of the kind described in this section.", &
1094 usage=
"H", default_c_val=
"DEFAULT")
1099 description=
"Selects a Gaussian basis set for this kind. The default type is ORB and the default "// &
1100 "form is GTO; NONE implies no basis and is meaningful for ghost atoms. Possible values for TYPE are "// &
1101 "{ORB, AUX, MIN, RI_AUX, LRI, ...}. Possible values for "// &
1102 "FORM are {GTO, STO}. Where STO results in a GTO expansion of a Slater type basis. "// &
1103 "If a value for FORM is given, also TYPE has to be set explicitly.", &
1104 usage=
"BASIS_SET [type] [form] DZVP", type_of_var=
char_t, default_c_vals=[
" ",
" ",
" "], &
1106 repeats=.true., n_var=-1)
1113 keyword, __location__, name=
"AUX_BASIS_SET", &
1114 variants=
s2a(
"AUXILIARY_BASIS_SET",
"AUX_BASIS"), &
1115 description=
"The auxiliary basis set (GTO type)", &
1116 usage=
"AUX_BASIS_SET DZVP", default_c_val=
" ", &
1118 deprecation_notice=
"use 'BASIS_SET AUX ...' instead", &
1124 keyword, __location__, name=
"RI_AUX_BASIS_SET", &
1125 variants=
s2a(
"RI_MP2_BASIS_SET",
"RI_RPA_BASIS_SET",
"RI_AUX_BASIS"), &
1126 description=
"The RI auxiliary basis set used in WF_CORRELATION (GTO type)", &
1127 usage=
"RI_AUX_BASIS_SET DZVP", default_c_val=
" ", &
1129 deprecation_notice=
"Use 'BASIS_SET RI_AUX ...' instead.", &
1135 keyword, __location__, name=
"LRI_BASIS_SET", &
1136 variants=
s2a(
"LRI_BASIS"), &
1137 description=
"The local resolution of identity basis set (GTO type)", &
1138 usage=
"LRI_BASIS_SET", default_c_val=
" ", &
1140 deprecation_notice=
"Use 'BASIS_SET LRI ...' instead.", &
1146 keyword, __location__, name=
"AUX_FIT_BASIS_SET", &
1147 variants=
s2a(
"AUXILIARY_FIT_BASIS_SET",
"AUX_FIT_BASIS"), &
1148 description=
"The auxiliary basis set (GTO type) for auxiliary density matrix method", &
1149 usage=
"AUX_FIT_BASIS_SET DZVP", default_c_val=
" ", &
1152 deprecation_notice=
"Use 'BASIS_SET AUX_FIT ...' instead.", &
1159 description=
"Specifies the electronic configuration used in construction the "// &
1160 "atomic initial guess (see the pseudo potential file for the default values).", &
1161 usage=
"ELEC_CONF n_elec(s) n_elec(p) n_elec(d) ... ", &
1166 CALL keyword_create(keyword, __location__, name=
"CORE_CORRECTION", &
1167 description=
"Corrects the effective nuclear charge", &
1168 usage=
"CORE_CORRECTION 1.0", n_var=1, &
1169 default_r_val=0.0_dp)
1173 CALL keyword_create(keyword, __location__, name=
"MAGNETIZATION", &
1174 description=
"The magnetization used in the atomic initial guess. "// &
1175 "Adds magnetization/2 spin-alpha electrons and removes magnetization/2 spin-beta electrons.", &
1176 usage=
"MAGNETIZATION 0.5", n_var=1, &
1177 default_r_val=0.0_dp)
1182 variants=[
"ELEMENT_SYMBOL"], &
1183 description=
"The element of the actual kind "// &
1184 "(if not given it is inferred from the kind name)", &
1185 usage=
"ELEMENT O", type_of_var=
char_t, n_var=1)
1190 variants=
s2a(
"ATOMIC_MASS",
"ATOMIC_WEIGHT",
"WEIGHT"), &
1191 description=
"The mass of the atom "// &
1192 "(if negative or non present it is inferred from the element symbol)", &
1193 usage=
"MASS 2.0", type_of_var=
real_t, n_var=1)
1197 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_FILE_NAME", &
1198 description=
"The name of the file where to find this kinds pseudopotential."// &
1199 " Default file is specified in DFT section.", &
1200 usage=
"POTENTIAL_FILE_NAME <PSEUDO-POTENTIAL-FILE-NAME>", default_c_val=
"-", n_var=1)
1204 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_TYPE", &
1205 description=
"The type of this kinds pseudopotential (ECP, ALL, GTH, UPS).", &
1206 deprecation_notice=
"Use 'POTENTIAL <TYPE> ...' instead.", &
1207 usage=
"POTENTIAL_TYPE <TYPE>", default_c_val=
"", n_var=1)
1214 "The type (ECP, ALL, GTH, UPS) and name of the "// &
1215 "pseudopotential for the defined kind. Use GTH potentials "// &
1216 "for most GPW calculations, ECP for Gaussian-integral effective core "// &
1217 "potentials, and ALL for all-electron calculations.", &
1218 usage=
"POTENTIAL [type] <POTENTIAL-NAME>", type_of_var=
char_t, &
1219 default_c_vals=[
" ",
" "], &
1224 CALL keyword_create(keyword, __location__, name=
"KG_POTENTIAL_FILE_NAME", &
1225 description=
"The name of the file where to find this kinds KG potential."// &
1226 " Default file is specified in DFT section.", &
1227 usage=
"KG_POTENTIAL_FILE_NAME <POTENTIAL-FILE-NAME>", default_c_val=
"-", n_var=1)
1231 CALL keyword_create(keyword, __location__, name=
"KG_POTENTIAL", &
1232 variants=[
"KG_POT"], &
1233 description=
"The name of the non-additive atomic kinetic energy potential.", &
1234 usage=
"KG_POTENTIAL <TNADD-POTENTIAL-NAME>", default_c_val=
"NONE", n_var=1)
1238 CALL keyword_create(keyword, __location__, name=
"ECP_SEMI_LOCAL", &
1239 description=
"Use ECPs in the original semi-local form."// &
1240 " This requires the availability of the corresponding integral library."// &
1241 " If set to False, a fully nonlocal one-center expansion of the ECP is constructed.", &
1242 usage=
"ECP_SEMI_LOCAL {T,F}", default_l_val=.true., lone_keyword_l_val=.true.)
1246 CALL keyword_create(keyword, __location__, name=
"COVALENT_RADIUS", &
1247 description=
"Use this covalent radius (in Angstrom) for all atoms of "// &
1248 "the atomic kind instead of the internally tabulated default value", &
1249 usage=
"COVALENT_RADIUS 1.24", n_var=1, default_r_val=0.0_dp, &
1250 unit_str=
"angstrom")
1255 description=
"Use this van der Waals radius (in Angstrom) for all atoms of "// &
1256 "the atomic kind instead of the internally tabulated default value", &
1257 usage=
"VDW_RADIUS 1.85", n_var=1, default_r_val=0.0_dp, unit_str=
"angstrom")
1261 CALL keyword_create(keyword, __location__, name=
"HARD_EXP_RADIUS", &
1262 description=
"The region where the hard density is supposed to be confined"// &
1263 " (GAPW) (in Bohr, default is 1.2 for H and 1.512 otherwise)", &
1264 usage=
"HARD_EXP_RADIUS 0.9", type_of_var=
real_t, n_var=1)
1268 CALL keyword_create(keyword, __location__, name=
"MAX_RAD_LOCAL", &
1269 description=
"Max radius for the basis functions used to"// &
1270 " generate the local projectors in GAPW [Bohr]", &
1271 usage=
"MAX_RAD_LOCAL 15.0", default_r_val=13.0_dp*
bohr)
1275 CALL keyword_create(keyword, __location__, name=
"RHO0_EXP_RADIUS", &
1276 description=
"the radius which defines the atomic region where "// &
1277 "the hard compensation density is confined. "// &
1278 "should be less than HARD_EXP_RADIUS (GAPW) (Bohr, default equals HARD_EXP_RADIUS)", &
1279 usage=
"RHO0_EXP_RADIUS 0.9", type_of_var=
real_t, n_var=1)
1283 CALL keyword_create(keyword, __location__, name=
"LEBEDEV_GRID", &
1284 description=
"GAPW: size of the angular Lebedev grid used for "// &
1285 "atom-centered integrations for this kind.", &
1286 usage=
"LEBEDEV_GRID 40", default_i_val=50)
1291 description=
"GAPW: number of radial grid points used for atom-centered "// &
1292 "integrations for this kind.", &
1293 usage=
"RADIAL_GRID 70", default_i_val=50)
1298 description=
"Defines the radius of the electrostatic multipole "// &
1299 "of the atom in Fist. This radius applies to the charge, the "// &
1300 "dipole and the quadrupole. When zero, the atom is treated as "// &
1301 "a point multipole, otherwise it is treated as a Gaussian "// &
1302 "charge distribution with the given radius: "// &
1303 "p(x,y,z)*N*exp(-(x**2+y**2+z**2)/(2*MM_RADIUS**2)), where N is "// &
1304 "a normalization constant. In the core-shell model, only the "// &
1305 "shell is treated as a Gaussian and the core is always a point "// &
1307 usage=
"MM_RADIUS {real}", default_r_val=0.0_dp, type_of_var=
real_t, &
1308 unit_str=
"angstrom", n_var=1)
1313 description=
"The third order parameter (derivative of hardness) used in "// &
1314 "diagonal DFTB3 correction.", &
1315 usage=
"DFTB3_PARAM 0.2", default_r_val=0.0_dp)
1320 description=
"The maximum l-quantum number of the DFTB basis for this kind.", &
1321 usage=
"LMAX_DFTB 1", default_i_val=-1)
1326 description=
"The number of MAOs (Modified Atomic Orbitals) for this kind.", &
1327 usage=
"MAO 4", default_i_val=-1)
1332 CALL keyword_create(keyword, __location__, name=
"SE_P_ORBITALS_ON_H", &
1333 description=
"Forces the usage of p-orbitals on H for SEMI-EMPIRICAL calculations."// &
1334 " This keyword applies only when the KIND is specifying an Hydrogen element."// &
1335 " It is ignored in all other cases. ", &
1336 usage=
"SE_P_ORBITALS_ON_H", default_l_val=.false., lone_keyword_l_val=.true.)
1341 description=
"Force one type to be treated by the GPW scheme,"// &
1342 " whatever are its primitives, even if the GAPW method is used", &
1343 usage=
"GPW_TYPE", default_l_val=.false., lone_keyword_l_val=.true.)
1349 description=
"This keyword makes all atoms of this kind "// &
1350 "ghost atoms, i.e. without pseudo or nuclear charge. "// &
1351 "Useful to just have the basis set at that position (e.g. BSSE calculations), "// &
1352 "or to have a non-interacting particle with BASIS_SET NONE", &
1354 default_l_val=.false., &
1355 lone_keyword_l_val=.true.)
1360 name=
"MONOVALENT", &
1361 description=
"This keyword makes all atoms of this kind monovalent, i.e. with "// &
1362 "a single electron and nuclear charge set to 1.0. Used to saturate dangling bonds, "// &
1363 "ideally in conjunction with a monovalent pseudopotential. Currently GTH only.", &
1364 usage=
"MONOVALENT", &
1365 default_l_val=.false., &
1366 lone_keyword_l_val=.true.)
1371 name=
"FLOATING_BASIS_CENTER", &
1372 description=
"This keyword makes all atoms of this kind "// &
1373 "floating functions, i.e. without pseudo or nuclear charge"// &
1374 " which are subject to a geometry optimization in the outer SCF.", &
1375 usage=
"FLOATING_BASIS_CENTER", &
1376 default_l_val=.false., &
1377 lone_keyword_l_val=.true.)
1382 name=
"NO_OPTIMIZE", &
1383 description=
"Skip optimization of this type (used in specific basis set or"// &
1384 " potential optimization schemes)", &
1385 usage=
"NO_OPTIMIZE", &
1386 default_l_val=.false., &
1387 lone_keyword_l_val=.true.)
1391 CALL keyword_create(keyword, __location__, name=
"PAO_BASIS_SIZE", &
1392 description=
"The block size used for the polarized atomic orbital basis. "// &
1393 "Setting PAO_BASIS_SIZE to the size of the primary basis or to a value "// &
1394 "below one will disables the PAO method for the given atomic kind. "// &
1395 "By default PAO is disbabled.", default_i_val=0)
1400 description=
"The filename of the PyTorch model for predicting PAO basis sets.")
1404 NULLIFY (subsection)
1405 CALL create_pao_potential_section(subsection)
1409 CALL create_pao_descriptor_section(subsection)
1417 CALL create_potential_section(subsection)
1421 CALL create_kgpot_section(subsection)
1425 CALL create_dft_plus_u_section(subsection)
1429 CALL create_bs_section(subsection)
1433 END SUBROUTINE create_kind_section
1440 SUBROUTINE create_pao_potential_section(section)
1445 cpassert(.NOT.
ASSOCIATED(section))
1448 CALL section_create(section, __location__, name=
"PAO_POTENTIAL", repeats=.true., &
1449 description=
"Settings of the PAO potentials, which are atomic kind specific.")
1452 description=
"Maximum angular moment of the potential "// &
1453 "(must be an even number).", default_i_val=0)
1458 description=
"Exponent of the Gaussian potential term.", &
1459 default_r_val=1.0_dp)
1464 description=
"Weight of Gaussian potential term.", &
1465 default_r_val=1.0_dp)
1469 CALL keyword_create(keyword, __location__, name=
"MAX_PROJECTOR", &
1470 description=
"Maximum angular moment of the potential's projectors. "// &
1471 "Used only by the GTH parametrization", default_i_val=2)
1475 END SUBROUTINE create_pao_potential_section
1482 SUBROUTINE create_pao_descriptor_section(section)
1487 cpassert(.NOT.
ASSOCIATED(section))
1490 CALL section_create(section, __location__, name=
"PAO_DESCRIPTOR", repeats=.true., &
1491 description=
"Settings of the PAO descriptor, which are atomic kind specific.")
1494 description=
"Exponent of the Gaussian potential term.", &
1495 default_r_val=1.0_dp)
1500 description=
"Exponent of the Gaussian screening.", &
1501 default_r_val=0.2_dp)
1506 description=
"Weight of Gaussian potential term.", &
1507 default_r_val=1.0_dp)
1511 END SUBROUTINE create_pao_descriptor_section
1522 SUBROUTINE create_bs_section(section)
1529 cpassert(.NOT.
ASSOCIATED(section))
1533 description=
"Define the required atomic orbital occupation "// &
1534 "assigned in initialization of the density matrix, by adding or "// &
1535 "subtracting electrons from specific angular momentum channels. "// &
1536 "It works only with GUESS ATOMIC.", &
1541 NULLIFY (keyword, subsection)
1544 name=
"_SECTION_PARAMETERS_", &
1545 description=
"controls the activation of the BS section", &
1547 default_l_val=.false., &
1548 lone_keyword_l_val=.true.)
1552 CALL section_create(subsection, __location__, name=
"ALPHA", description=
"alpha spin", &
1559 description=
"Orbital ccupation change per angular momentum quantum number. "// &
1560 "In unrestricted calculations applied to spin alpha.", &
1571 description=
"Angular momentum quantum number of the "// &
1572 "orbitals whose occupation is changed", &
1583 description=
"Principal quantum number of the "// &
1584 "orbitals whose occupation is changed. "// &
1585 "Default is the first not occupied", &
1595 CALL section_create(subsection, __location__, name=
"BETA", description=
"beta spin", &
1602 description=
"Orbital ccupation change per angular momentum quantum number. "// &
1603 "Applied to spin beta and active only in unrestricted calculations.", &
1613 description=
"Angular momentum quantum number of the "// &
1614 "orbitals of beta spin whose occupation is changed. "// &
1615 "Active only for unrestricted calculations", &
1625 description=
"Principal quantum number of the "// &
1626 "orbitals of beta spin whose occupation is changed. "// &
1627 "Default is the first not occupied. "// &
1628 "Active only for unrestricted calculations", &
1639 END SUBROUTINE create_bs_section
1647 SUBROUTINE create_topology_section(section)
1653 cpassert(.NOT.
ASSOCIATED(section))
1655 description=
"Section specifying information regarding how to handle the topology"// &
1656 " for classical runs.", &
1657 n_keywords=5, n_subsections=0, repeats=.false.)
1659 NULLIFY (keyword, print_key)
1661 CALL keyword_create(keyword, __location__, name=
"USE_ELEMENT_AS_KIND", &
1662 description=
"Kinds are generated according to the element name."// &
1663 " Default=True for SE and TB methods.", &
1664 usage=
"USE_ELEMENT_AS_KIND logical", &
1665 default_l_val=.false., lone_keyword_l_val=.true.)
1669 CALL keyword_create(keyword, __location__, name=
"CHARGE_OCCUP", &
1670 variants=[
"CHARGE_O"], &
1671 description=
"Read MM charges from the OCCUP field of PDB file.", &
1672 usage=
"CHARGE_OCCUP logical", &
1673 default_l_val=.false., lone_keyword_l_val=.true.)
1678 variants=[
"CHARGE_B"], &
1679 description=
"Read MM charges from the BETA field of PDB file.", &
1680 usage=
"CHARGE_BETA logical", &
1681 default_l_val=.false., lone_keyword_l_val=.true.)
1685 CALL keyword_create(keyword, __location__, name=
"CHARGE_EXTENDED", &
1686 description=
"Read MM charges from the very last field of PDB file (starting from column 81)."// &
1687 " No limitations of number of digits.", &
1688 usage=
"CHARGE_EXTENDED logical", &
1689 default_l_val=.false., lone_keyword_l_val=.true.)
1694 description=
"For a protein, each residue is now considered a molecule", &
1695 usage=
"PARA_RES logical", &
1696 default_l_val=.true., lone_keyword_l_val=.true.)
1701 description=
"Check molecules have the same number of atom and names.", &
1702 usage=
"MOL_CHECK logical", &
1703 default_l_val=.true., lone_keyword_l_val=.true.)
1707 CALL keyword_create(keyword, __location__, name=
"USE_G96_VELOCITY", &
1708 description=
"Use the velocities in the G96 coordinate files as the starting velocity", &
1709 usage=
"USE_G96_VELOCITY logical", &
1710 default_l_val=.false., lone_keyword_l_val=.true.)
1715 CALL keyword_create(keyword, __location__, name=
"COORD_FILE_NAME", &
1716 variants=
s2a(
"COORD_FILE"), &
1717 description=
"Specifies the filename that contains coordinates. "// &
1718 "In case the CELL section is not set explicitly but this file "// &
1719 "contains cell information, including CIF, PDB and (Extended) XYZ "// &
1720 "formats, this file is also parsed for setting up the simulation cell.", &
1721 usage=
"COORD_FILE_NAME <FILENAME>", type_of_var=
lchar_t)
1725 CALL keyword_create(keyword, __location__, name=
"COORD_FILE_FORMAT", &
1726 variants=
s2a(
"COORDINATE"), &
1727 description=
"Set up the way in which coordinates will be read.", &
1728 usage=
"COORD_FILE_FORMAT (OFF|PDB|XYZ|G96|CRD|CIF|XTL|CP2K)", &
1729 enum_c_vals=
s2a(
"OFF",
"PDB",
"XYZ",
"G96",
"CRD",
"CIF",
"XTL",
"CP2K"), &
1733 "Coordinates read in the &COORD section of the input file", &
1734 "Coordinates provided through a PDB file format", &
1735 "Coordinates provided through an XYZ file format", &
1736 "Coordinates provided through a GROMOS96 file format", &
1737 "Coordinates provided through an AMBER file format", &
1738 "Coordinates provided through a CIF (Crystallographic Information File) file format", &
1739 "Coordinates provided through a XTL (MSI native) file format", &
1740 "Read the coordinates in CP2K &COORD section format from an external file. "// &
1741 "NOTE: This file will be overwritten with the latest coordinates."), &
1746 CALL keyword_create(keyword, __location__, name=
"NUMBER_OF_ATOMS", &
1747 variants=
s2a(
"NATOMS",
"NATOM"), &
1748 description=
"Optionally define the number of atoms read from an external file "// &
1749 "(see COORD_FILE_NAME) if the COORD_FILE_FORMAT CP2K is used", &
1754 usage=
"NATOMS 768000")
1760 CALL keyword_create(keyword, __location__, name=
"DISABLE_EXCLUSION_LISTS", &
1761 description=
"Do not build any exclusion lists.", &
1762 usage=
"DISABLE_EXCLUSION_LISTS", &
1763 default_l_val=.false., lone_keyword_l_val=.true.)
1768 description=
"Specifies which kind of Van der Waals interaction to skip.", &
1769 usage=
"EXCLUDE_VDW (1-1||1-2||1-3||1-4)", &
1770 enum_c_vals=
s2a(
"1-1",
"1-2",
"1-3",
"1-4"), &
1777 description=
"Specifies which kind of Electrostatic interaction to skip.", &
1778 usage=
"EXCLUDE_EI (1-1||1-2||1-3||1-4)", &
1779 enum_c_vals=
s2a(
"1-1",
"1-2",
"1-3",
"1-4"), &
1785 CALL keyword_create(keyword, __location__, name=
"AUTOGEN_EXCLUDE_LISTS", &
1786 description=
"When True, the exclude lists are solely based on"// &
1787 " the bond data in the topology. The (minimal)"// &
1788 " number of bonds between two atoms is used to"// &
1789 " determine if the atom pair is added to an"// &
1790 " exclusion list. When False, 1-2 exclusion is based"// &
1791 " on bonds in the topology, 1-3 exclusion is based"// &
1792 " on bonds and bends in the topology, 1-4 exclusion"// &
1793 " is based on bonds, bends and dihedrals in the"// &
1794 " topology. This implies that a missing dihedral in"// &
1795 " the topology will cause the corresponding 1-4 pair"// &
1796 " not to be in the exclusion list, in case 1-4"// &
1797 " exclusion is requested for VDW or EI interactions.", &
1798 usage=
"AUTOGEN_EXCLUDE_LISTS logical", &
1799 default_l_val=.false., lone_keyword_l_val=.true.)
1804 keyword, __location__, name=
"MULTIPLE_UNIT_CELL", &
1805 description=
"Specifies the numbers of repetition in space (X, Y, Z) of the defined cell, "// &
1806 "assuming it as a unit cell. This keyword affects only the coordinates specification. The same keyword "// &
1807 "in SUBSYS%CELL%MULTIPLE_UNIT_CELL should be modified in order to affect the cell "// &
1808 "specification.", usage=
"MULTIPLE_UNIT_CELL 1 1 1", &
1809 n_var=3, default_i_vals=[1, 1, 1], repeats=.false.)
1813 CALL keyword_create(keyword, __location__, name=
"MEMORY_PROGRESSION_FACTOR", &
1814 description=
"This keyword is quite technical and should normally not be changed by the user. It "// &
1815 "affects the memory allocation during the construction of the topology. It does NOT affect the "// &
1816 "memory used once the topology is built.", &
1817 n_var=1, default_r_val=1.2_dp, repeats=.false.)
1822 description=
"controls the dumping of the PDB at the starting geometry", &
1826 CALL keyword_create(keyword, __location__, name=
"CHARGE_OCCUP", &
1827 variants=[
"CHARGE_O"], &
1828 description=
"Write the MM charges to the OCCUP field of the PDB file", &
1829 usage=
"CHARGE_OCCUP logical", &
1830 default_l_val=.false., lone_keyword_l_val=.true.)
1835 variants=[
"CHARGE_B"], &
1836 description=
"Write the MM charges to the BETA field of the PDB file", &
1837 usage=
"CHARGE_BETA logical", &
1838 default_l_val=.false., lone_keyword_l_val=.true.)
1842 CALL keyword_create(keyword, __location__, name=
"CHARGE_EXTENDED", &
1843 description=
"Write the MM charges to the very last field of the PDB file (starting from column 81)", &
1844 usage=
"CHARGE_EXTENDED logical", &
1845 default_l_val=.false., lone_keyword_l_val=.true.)
1852 description=
"controls the dumping of the PSF connectivity", &
1857 NULLIFY (subsection)
1858 CALL create_exclude_list_section(subsection,
"EXCLUDE_VDW_LIST")
1862 CALL create_exclude_list_section(subsection,
"EXCLUDE_EI_LIST")
1866 CALL create_center_section(subsection)
1870 CALL create_generate_section(subsection)
1874 CALL create_molset_section(subsection)
1878 CALL create_fragments_section(subsection)
1882 END SUBROUTINE create_topology_section
1890 SUBROUTINE create_exclude_list_section(section, header)
1892 CHARACTER(LEN=*),
INTENT(IN) ::
header
1896 cpassert(.NOT.
ASSOCIATED(section))
1899 description=
"Speficy bonds (via atom kinds) for fine tuning of 1-2 "// &
1900 "exclusion lists. If this section is not present the 1-2 exclusion is "// &
1901 "applied to all bond kinds. When this section is present the 1-2 exclusion "// &
1902 "is applied ONLY to the bonds defined herein. This section allows ONLY fine tuning of 1-2 "// &
1904 n_keywords=1, n_subsections=0, repeats=.false.)
1907 description=
"Specify the atom kinds involved in the bond for which 1-2 exclusion holds.", &
1908 usage=
"BOND {KIND1} {KIND2}", type_of_var=
char_t, &
1912 END SUBROUTINE create_exclude_list_section
1919 SUBROUTINE create_center_section(section)
1924 cpassert(.NOT.
ASSOCIATED(section))
1926 CALL section_create(section, __location__,
"CENTER_COORDINATES", &
1927 description=
"Allows centering the coordinates of the system in the box. "// &
1928 "The centering point can be defined by the user.", &
1929 n_keywords=1, n_subsections=0, repeats=.false.)
1931 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
1932 description=
"Controls the activation of the centering method", &
1933 usage=
"&CENTER_COORDINATES T", &
1934 default_l_val=.false., &
1935 lone_keyword_l_val=.true.)
1939 CALL keyword_create(keyword, __location__, name=
"CENTER_POINT", &
1940 description=
"Specify the point used for centering the coordinates. Default is to "// &
1941 "center the system in cell/2. ", type_of_var=
real_t, n_var=3, &
1945 END SUBROUTINE create_center_section
1951 SUBROUTINE create_fragments_section(section)
1955 TYPE(
section_type),
POINTER :: subsection, subsubsection
1957 cpassert(.NOT.
ASSOCIATED(section))
1958 NULLIFY (keyword, subsection, subsubsection)
1960 description=
"Specify the fragments of a full system.", &
1961 n_keywords=1, n_subsections=0, repeats=.false.)
1964 description=
"Specify information about the fragments.", &
1965 n_keywords=1, n_subsections=0, repeats=.true.)
1968 name=
"FRAG_RANGE", &
1969 variants=
s2a(
"RANGE"), &
1970 description=
"Defines fragments. This keyword can be repeated.", &
1974 usage=
"FRAG_RANGE 1 5")
1981 END SUBROUTINE create_fragments_section
1988 SUBROUTINE create_molset_section(section)
1992 TYPE(
section_type),
POINTER :: subsection, subsubsection
1994 cpassert(.NOT.
ASSOCIATED(section))
1995 NULLIFY (keyword, subsection, subsubsection)
1997 description=
"Specify the connectivity of a full system specifying the connectivity"// &
1998 " of the fragments of the system.", &
1999 n_keywords=2, n_subsections=0, repeats=.false.)
2003 description=
"Specify information about the connectivity of single molecules", &
2004 n_keywords=2, n_subsections=0, repeats=.true.)
2007 description=
"number of molecules ", &
2008 usage=
"NMOL {integer}", default_i_val=1)
2012 CALL connectivity_framework(subsection,
do_conn_psf)
2017 CALL section_create(subsection, __location__, name=
"MERGE_MOLECULES", &
2018 description=
"Enables the creation of connecting bridges (bonds, angles, torsions, impropers)"// &
2019 " between the two or more molecules defined with independent connectivity.", &
2020 n_keywords=2, n_subsections=0, repeats=.false.)
2023 description=
"Defines new bonds", n_keywords=2, n_subsections=0, repeats=.false.)
2024 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2025 description=
"Two integer indexes per line defining the new bond."// &
2026 " Indexes must be relative to the full system and not to the single molecules", &
2028 usage=
"{Integer} {Integer}", type_of_var=
integer_t, n_var=2)
2034 CALL section_create(subsubsection, __location__, name=
"angles", &
2035 description=
"Defines new angles", n_keywords=2, n_subsections=0, &
2037 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2038 description=
"Three integer indexes per line defining the new angle"// &
2039 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
2040 usage=
"{Integer} {Integer} {Integer}", type_of_var=
integer_t, n_var=3)
2046 CALL section_create(subsubsection, __location__, name=
"torsions", &
2047 description=
"Defines new torsions", n_keywords=2, n_subsections=0, &
2049 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2050 description=
"Four integer indexes per line defining the new torsion"// &
2051 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
2052 usage=
"{Integer} {Integer} {Integer} {Integer}", type_of_var=
integer_t, n_var=4)
2058 CALL section_create(subsubsection, __location__, name=
"impropers", &
2059 description=
"Defines new impropers", n_keywords=2, n_subsections=0, &
2061 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
2062 description=
"Four integer indexes per line defining the new improper"// &
2063 " Indexes must be relative to the full system and not to the single molecules", repeats=.true., &
2064 usage=
"{Integer} {Integer} {Integer} {Integer}", type_of_var=
integer_t, n_var=4)
2073 END SUBROUTINE create_molset_section
2080 SUBROUTINE create_generate_section(section)
2086 cpassert(.NOT.
ASSOCIATED(section))
2087 NULLIFY (keyword, subsection)
2089 description=
"Setup of keywords controlling the generation of the connectivity", &
2090 n_keywords=2, n_subsections=0, repeats=.true.)
2093 description=
"Reorder a list of atomic coordinates into order so it can be packed correctly.", &
2094 usage=
"REORDER <LOGICAL>", &
2095 default_l_val=.false., lone_keyword_l_val=.true.)
2099 CALL keyword_create(keyword, __location__, name=
"CREATE_MOLECULES", &
2100 description=
"Create molecules names and definition. Can be used to override the"// &
2101 " molecules specifications of a possible input connectivity or to create molecules"// &
2102 " specifications for file types as XYZ, missing of molecules definitions.", &
2103 usage=
"CREATE_MOLECULES <LOGICAL>", &
2104 default_l_val=.false., lone_keyword_l_val=.true.)
2109 description=
"Used in conjunction with BONDPARM_FACTOR to "// &
2110 "help determine wheather there is bonding "// &
2111 "between two atoms based on a distance criteria. "// &
2112 "Can use covalent radii information or VDW radii information", &
2113 usage=
"BONDPARM (COVALENT||VDW)", &
2114 enum_c_vals=
s2a(
"COVALENT",
"VDW"), &
2120 CALL keyword_create(keyword, __location__, name=
"BONDPARM_FACTOR", &
2121 description=
"Used in conjunction with BONDPARM to help "// &
2122 "determine wheather there is bonding between "// &
2123 "two atoms based on a distance criteria.", &
2124 usage=
"bondparm_factor {real}", default_r_val=1.1_dp)
2128 CALL keyword_create(keyword, __location__, name=
"BONDLENGTH_MAX", &
2129 description=
"Maximum distance to generate neighbor lists to build connectivity", &
2130 usage=
"BONDLENGTH_MAX <real>", &
2132 unit_str=
"angstrom")
2136 CALL keyword_create(keyword, __location__, name=
"BONDLENGTH_MIN", &
2137 description=
"Minimum distance to generate neighbor lists to build connectivity", &
2138 usage=
"BONDLENGTH_MIN <real>", &
2140 unit_str=
"angstrom")
2146 description=
"Section used to add/remove bonds in the connectivity."// &
2147 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2148 n_keywords=1, n_subsections=0, repeats=.true.)
2150 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
2151 description=
"controls the activation of the bond", &
2152 usage=
"&BOND (ADD|REMOVE)", &
2153 enum_c_vals=
s2a(
"ADD",
"REMOVE"), &
2160 description=
"Specifies two atomic index united by a covalent bond", &
2161 usage=
"ATOMS {integer} {integer}", type_of_var=
integer_t, n_var=2, &
2171 description=
"Section used to add/remove angles in the connectivity."// &
2172 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2173 n_keywords=1, n_subsections=0, repeats=.true.)
2175 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
2176 description=
"controls the activation of the bond", &
2177 usage=
"&ANGLE (ADD|REMOVE)", &
2178 enum_c_vals=
s2a(
"ADD",
"REMOVE"), &
2185 description=
"Specifies two atomic index united by a covalent bond", &
2186 usage=
"ATOMS {integer} {integer} {integer} ", type_of_var=
integer_t, n_var=3, &
2196 description=
"Section used to add/remove torsion in the connectivity."// &
2197 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2198 n_keywords=1, n_subsections=0, repeats=.true.)
2200 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
2201 description=
"controls the activation of the bond", &
2202 usage=
"&TORSION (ADD|REMOVE)", &
2203 enum_c_vals=
s2a(
"ADD",
"REMOVE"), &
2210 description=
"Specifies two atomic index united by a covalent bond", &
2211 usage=
"ATOMS {integer} {integer} {integer} {integer} ", type_of_var=
integer_t, n_var=4, &
2221 description=
"Section used to add/remove improper in the connectivity."// &
2222 " Useful for systems with a complex connectivity, difficult to find out automatically.", &
2223 n_keywords=1, n_subsections=0, repeats=.true.)
2225 CALL keyword_create(keyword, __location__, name=
"_SECTION_PARAMETERS_", &
2226 description=
"controls the activation of the bond", &
2227 usage=
"&IMPROPER (ADD|REMOVE)", &
2228 enum_c_vals=
s2a(
"ADD",
"REMOVE"), &
2235 description=
"Specifies two atomic index united by a covalent bond", &
2236 usage=
"ATOMS {integer} {integer} {integer} {integer} ", type_of_var=
integer_t, n_var=4, &
2245 CALL section_create(subsection, __location__, name=
"ISOLATED_ATOMS", &
2246 description=
" This section specifies the atoms that one considers isolated. Useful when present "// &
2247 "ions in solution.", n_keywords=1, n_subsections=0, repeats=.false.)
2249 description=
"Specifies a list of atomic indexes of the isolated ion", &
2250 usage=
"LIST {integer}", type_of_var=
integer_t, n_var=-1, &
2263 CALL create_gen_print_section(subsection)
2267 END SUBROUTINE create_generate_section
2274 SUBROUTINE create_gen_print_section(section)
2279 cpassert(.NOT.
ASSOCIATED(section))
2281 description=
"Section of possible print options in GENERATE code.", &
2282 n_keywords=0, n_subsections=1, repeats=.false.)
2286 description=
"Activates the printing of the neighbor lists used"// &
2288 filename=
"", unit_str=
"angstrom")
2293 description=
"Activates the printing of the subcells used for the "// &
2294 "generation of neighbor lists for connectivity.", &
2299 END SUBROUTINE create_gen_print_section
2307 SUBROUTINE connectivity_framework(section, default)
2309 INTEGER,
INTENT(IN) :: default
2313 cpassert(
ASSOCIATED(section))
2315 CALL keyword_create(keyword, __location__, name=
"CONN_FILE_NAME", &
2316 variants=[
"CONN_FILE"], &
2317 description=
"Specifies the filename that contains the molecular connectivity.", &
2318 usage=
"CONN_FILE_NAME <FILENAME>", type_of_var=
lchar_t)
2322 CALL keyword_create(keyword, __location__, name=
"CONN_FILE_FORMAT", &
2323 variants=[
"CONNECTIVITY"], &
2324 description=
"Ways to determine and generate a molecules. "// &
2325 "Default is to use GENERATE", &
2326 usage=
"CONN_FILE_FORMAT (PSF|UPSF|MOL_SET|GENERATE|OFF|G87|G96|AMBER|USER)", &
2327 enum_c_vals=
s2a(
"PSF",
"UPSF",
"MOL_SET",
"GENERATE",
"OFF",
"G87",
"G96",
"AMBER",
"USER"), &
2337 enum_desc=
s2a(
"Use a PSF file to determine the connectivity."// &
2338 " (support standard CHARMM/XPLOR and EXT CHARMM)", &
2339 "Read a PSF file in an unformatted way (useful for not so standard PSF).", &
2340 "Use multiple PSF (for now...) files to generate the whole system.", &
2341 "Use a simple distance criteria. (Look at keyword BONDPARM)", &
2342 "Do not generate molecules. (e.g. for QS or ill defined systems)", &
2343 "Use GROMOS G87 topology file.", &
2344 "Use GROMOS G96 topology file.", &
2345 "Use AMBER topology file for reading connectivity (compatible starting from AMBER V.7)", &
2346 "Allows the definition of molecules and residues based on the 5th and 6th column of "// &
2347 "the COORD section. This option can be handy for the definition of molecules with QS "// &
2348 "or to save memory in the case of very large systems (use PARA_RES off)."), &
2349 default_i_val=default)
2352 END SUBROUTINE connectivity_framework
2361 SUBROUTINE create_dft_plus_u_section(section)
2368 cpassert(.NOT.
ASSOCIATED(section))
2371 name=
"DFT_PLUS_U", &
2372 description=
"Define the parameters for a DFT+U run", &
2379 name=
"_SECTION_PARAMETERS_", &
2380 description=
"Controls the activation of the DFT+U section", &
2381 usage=
"&DFT_PLUS_U ON", &
2382 default_l_val=.false., &
2383 lone_keyword_l_val=.true.)
2389 description=
"Angular momentum quantum number of the "// &
2390 "orbitals to which the correction is applied", &
2401 variants=[
"U_EFF"], &
2402 description=
"Effective parameter U(eff) = U - J", &
2406 default_r_val=0.0_dp, &
2408 usage=
"U_MINUS_J [eV] 1.4")
2414 description=
"principal quantum number of the "// &
2415 "orbitals to which the correction is applied. Ignored unless pwdft is used for the calculations", &
2426 description=
"U parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2430 default_r_val=0.0_dp, &
2438 description=
"J parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2442 default_r_val=0.0_dp, &
2450 description=
"alpha parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2454 default_r_val=0.0_dp, &
2456 usage=
"alpha [eV] 1.4")
2462 description=
"beta parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2466 default_r_val=0.0_dp, &
2468 usage=
"beta [eV] 1.4")
2474 description=
"J0 parameter in the theory of Dudarev et al. Ignored unless pwdft is used", &
2478 default_r_val=0.0_dp, &
2480 usage=
"J0 [eV] 1.4")
2485 name=
"occupation", &
2486 description=
"number of electrons in the hubbard shell. Ignored unless pwdft is used", &
2490 default_r_val=0.0_dp, &
2491 usage=
"occupation 6")
2497 description=
"Increase the effective U parameter stepwise using the specified "// &
2498 "increment until the target value given by U_MINUS_J is reached.", &
2502 default_r_val=0.0_dp, &
2504 usage=
"U_RAMPING [eV] 0.1")
2509 name=
"EPS_U_RAMPING", &
2510 description=
"Threshold value (SCF convergence) for incrementing the effective "// &
2511 "U value when U ramping is active.", &
2515 default_r_val=1.0e-5_dp, &
2516 usage=
"EPS_U_RAMPING 1.0E-6")
2521 name=
"INIT_U_RAMPING_EACH_SCF", &
2522 description=
"Set the initial U ramping value to zero before each wavefunction optimisation. "// &
2523 "The default is to apply U ramping only for the initial wavefunction optimisation.", &
2525 default_l_val=.false., &
2526 lone_keyword_l_val=.true., &
2527 usage=
"INIT_U_RAMPING_EACH_SCF on")
2531 NULLIFY (subsection)
2534 name=
"ENFORCE_OCCUPATION", &
2535 description=
"Enforce and control a special (initial) orbital occupation. "// &
2536 "Note, this feature works only for the methods MULLIKEN and LOWDIN. "// &
2537 "It should only be used to prepare an initial configuration. An "// &
2538 "inadequate parameter choice can easily inhibit SCF convergence.", &
2544 name=
"_SECTION_PARAMETERS_", &
2545 description=
"Controls the activation of the ENFORCE_OCCUPATION section", &
2546 usage=
"&ENFORCE_OCCUPATION ON", &
2547 default_l_val=.false., &
2548 lone_keyword_l_val=.true.)
2553 variants=[
"N_ELECTRONS"], &
2554 description=
"Number of alpha and beta electrons. An occupation (per spin) smaller than 0.5 is ignored.", &
2558 default_r_val=0.0_dp, &
2559 usage=
"NELEC 5.0 4.0")
2566 description=
"Select orbitals and occupation order. An input of 1 to 2*L+1 integer values in "// &
2567 "the range -L to L defining the M values of the spherical orbitals is expected.", &
2572 usage=
"ORBITALS 0 +1 -1")
2578 description=
"The occupation constraint is enforced until this threshold value "// &
2579 "for the SCF convergence criterion is reached", &
2583 default_r_val=1.0e30_dp, &
2584 usage=
"EPS_SCF 0.001")
2590 description=
"The occupation constraint is applied for this number of initial SCF iterations", &
2601 description=
"The occupation constraint is applied with smearing", &
2603 default_l_val=.false., &
2604 lone_keyword_l_val=.true., &
2612 END SUBROUTINE create_dft_plus_u_section
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.
integer, parameter, public use_perd_xyz
integer, parameter, public cell_sym_monoclinic
integer, parameter, public use_perd_y
integer, parameter, public cell_sym_triclinic
integer, parameter, public cell_sym_tetragonal_ab
integer, parameter, public use_perd_xz
integer, parameter, public cell_sym_rhombohedral
integer, parameter, public use_perd_x
integer, parameter, public cell_sym_tetragonal_ac
integer, parameter, public use_perd_z
integer, parameter, public use_perd_yz
integer, parameter, public use_perd_none
integer, parameter, public cell_sym_hexagonal_gamma_60
integer, parameter, public cell_sym_orthorhombic
integer, parameter, public cell_sym_none
integer, parameter, public cell_sym_hexagonal_gamma_120
integer, parameter, public cell_sym_monoclinic_gamma_ab
integer, parameter, public cell_sym_cubic
integer, parameter, public use_perd_xy
integer, parameter, public cell_sym_tetragonal_bc
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
real(kind=dp) function, public cp_unit_to_cp2k(value, unit_str, defaults, power)
converts to the internal cp2k units to the given unit
Defines the basic variable types.
integer, parameter, public dp
Definition of physical constants:
real(kind=dp), parameter, public bohr
Utilities for string manipulations.
character(len=1), parameter, public newline