35 #include "./base/base_uses.f90"
40 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
41 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_motion_print'
53 TYPE(section_type),
POINTER :: section
55 TYPE(keyword_type),
POINTER :: keyword
56 TYPE(section_type),
POINTER :: print_key
58 NULLIFY (keyword, section, print_key)
61 description=
"Controls the printing properties during an MD/Optimization run", &
62 n_keywords=1, n_subsections=1, repeats=.true.)
65 variants=(/
"MEMORY"/), &
66 description=
"Whether overall memory usage should be sampled and printed "// &
67 "at each MD/Optimization step.", &
68 usage=
"MEMORY_INFO LOGICAL", &
69 default_l_val=.true., lone_keyword_l_val=.true.)
74 description=
"Controls the output of the trajectory", &
76 filename=
"", unit_str=
"angstrom")
78 description=
"Specifies the format of the output file for the trajectory.")
83 print_key, __location__,
"SHELL_TRAJECTORY", &
84 description=
"Controls the output of the trajectory of shells when the shell-model is used ", &
86 filename=
"", unit_str=
"angstrom")
88 description=
"Specifies the format of the output file for the trajectory of shells.")
93 description=
"Controls the output of the trajectory of cores when the shell-model is used ", &
95 filename=
"", unit_str=
"angstrom")
97 description=
"Specifies the format of the output file for the trajectory of cores.")
102 description=
"Controls the output of the simulation cell. "// &
103 "For later analysis of the trajectory it is recommendable that the "// &
104 "frequency of printing is the same as the one used for the trajectory file.", &
111 description=
"Controls the output of the velocities."//
newline// &
112 "The default unit for velocities is bohr/au_time. The au_time is derived from the "// &
113 "hbar value (1.054e-34 J*sec) and the value of the hartree unit of energy "// &
114 "(27.21 eV or 4.359e-18 J) as hbar/Ehartree = 2.42e-17 sec = 0.0242 fs. "// &
115 "Having an atom with a mass m in AMU the kinetic energy 1/2mv^2 will be obtained "// &
116 "in Hartree (i.e. au) multiplying by 911.447 .", &
118 filename=
"", unit_str=
"bohr*au_t^-1")
120 description=
"Specifies the format of the output file for the velocities.")
125 description=
"Controls the output of the velocities of shells when the shell model is used", &
127 filename=
"", unit_str=
"bohr*au_t^-1")
129 description=
"Specifies the format of the output file for the velocities of shells.")
134 description=
"controls the output of the velocities of cores when the shell model is used", &
136 filename=
"", unit_str=
"bohr*au_t^-1")
138 description=
"Specifies the format of the output file for the velocities of cores.")
147 print_key, __location__,
"FORCE_MIXING_LABELS", &
148 description=
"Controls the output of the force mixing (FORCE_EVAL&QMMM&FORCE_MIXING) labels", &
152 description=
"Specifies the format of the output file for the force mixing labels.")
157 description=
"Controls the output of the forces", &
159 filename=
"", unit_str=
"hartree*bohr^-1")
161 description=
"Specifies the format of the output file for the forces.")
166 description=
"Controls the output of the forces on shells when shell-model is used", &
168 filename=
"", unit_str=
"hartree*bohr^-1")
170 description=
"Specifies the format of the output file for the forces on shells.")
175 description=
"Controls the output of the forces on cores when shell-model is used", &
177 filename=
"", unit_str=
"hartree*bohr^-1")
179 description=
"Specifies the format of the output file for the forces on cores.")
184 description=
"Controls the output of the energies of the two "// &
185 "regular FORCE_EVALS in the MIXED method "// &
186 "printed is step,time,Etot,E_F1,E_F2,CONS_QNT", &
193 description=
"Controls the output of the stress tensor", &
200 description=
"Controls the output of the polarisability tensor during an MD run", &
207 description=
"Controls the dumping of the restart file during runs. "// &
208 "By default keeps a short history of three restarts. See also RESTART_HISTORY", &
209 each_iter_names=s2a(
"MD"), each_iter_values=(/20/), &
213 CALL keyword_create(keyword, __location__, name=
"BACKUP_COPIES", &
214 description=
"Specifies the maximum number of backup copies.", &
215 usage=
"BACKUP_COPIES {int}", &
220 CALL keyword_create(keyword, __location__, name=
"SPLIT_RESTART_FILE", &
221 description=
"If specified selected input sections, which are growing with the "// &
222 "number of atoms in the system, are written to another restart file "// &
223 "in binary format instead of the default restart file in human "// &
224 "readable ASCII format. This split of the restart file may "// &
225 "provide significant memory savings and an accelerated I/O for "// &
226 "systems with a very large number of atoms", &
227 usage=
"SPLIT_RESTART_FILE yes", &
228 default_l_val=.false., &
229 lone_keyword_l_val=.true.)
237 description=
"Dumps unique restart files during the run keeping all of them. "// &
238 "Most useful if recovery is needed at a later point.", &
240 each_iter_names=s2a(
"MD",
"GEO_OPT",
"ROT_OPT"), each_iter_values=(/500, 500, 500/), &
246 description=
"Dumps the translation vector applied along an MD (if any). Useful"// &
247 " for postprocessing of QMMM trajectories in which the QM fragment is continuously"// &
248 " centered in the QM box", &
265 TYPE(keyword_type),
POINTER :: keyword
266 TYPE(section_type),
POINTER :: section
267 LOGICAL,
INTENT(IN) :: pos
268 CHARACTER(LEN=*),
INTENT(IN) :: description
270 cpassert(
ASSOCIATED(section))
271 cpassert(.NOT.
ASSOCIATED(keyword))
276 keyword, __location__, name=
"FORMAT", &
277 description=description, usage=
"FORMAT (ATOMIC|DCD|PDB|XMOL|XYZ)", &
279 enum_c_vals=s2a(
"ATOMIC",
"DCD",
"DCD_ALIGNED_CELL",
"PDB",
"XMOL",
"XYZ"), &
281 enum_desc=s2a(
"Write only the coordinates X,Y,Z without element symbols to a formatted file", &
282 "Write the coordinates (no element labels) and the cell information to a binary file", &
283 "Like DCD, but the dumped coordinates refer to an aligned cell following the common convention: "// &
284 "the cell vector **a** is aligned with the *x* axis and the cell vector **b** lies in "// &
285 "the *xy* plane. This allows the reconstruction of scaled coordinates from the DCD data only.", &
286 "Write the atomic information in PDB format to a formatted file", &
287 "Mostly known as XYZ format, provides in a formatted file: element_symbol X Y Z", &
288 "Alias name for XMOL"))
293 variants=(/
"CHARGE_O"/), &
294 description=
"Write the MM charges to the OCCUP field of the PDB file", &
295 usage=
"CHARGE_OCCUP logical", &
296 default_l_val=.false., lone_keyword_l_val=.true.)
301 variants=(/
"CHARGE_B"/), &
302 description=
"Write the MM charges to the BETA field of the PDB file", &
303 usage=
"CHARGE_BETA logical", &
304 default_l_val=.false., lone_keyword_l_val=.true.)
308 CALL keyword_create(keyword, __location__, name=
"CHARGE_EXTENDED", &
309 description=
"Write the MM charges to the very last field of the PDB file (starting from column 81)", &
310 usage=
"CHARGE_EXTENDED logical", &
311 default_l_val=.false., lone_keyword_l_val=.true.)
318 description=description, usage=
"FORMAT (ATOMIC|DCD|XMOL|XYZ)", &
320 enum_c_vals=s2a(
"ATOMIC",
"DCD",
"XMOL",
"XYZ"), &
322 enum_desc=s2a(
"Write only the coordinates X,Y,Z without element symbols to a formatted file", &
323 "Write the coordinates (no element labels) and the cell information to a binary file", &
324 "Mostly known as XYZ format, provides in a formatted file: element_symbol X Y Z", &
325 "Alias name for XMOL"))
331 CALL keyword_create(keyword, __location__, name=
"PRINT_ATOM_KIND", &
332 description=
"Write the atom kind given in the subsys section instead of the element symbol. "// &
333 "Only valid for the XMOL format.", &
334 usage=
"PRINT_ELEMENT_NAME logical", &
335 default_l_val=.false., lone_keyword_l_val=.true.)
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public low_print_level
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
integer, parameter, public silent_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
Utilities for string manipulations.
character(len=1), parameter, public newline