Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 :
8 : ! **************************************************************************************************
9 : !> \brief function that build the semi empirical section of the input
10 : !> \par History
11 : !> 10.2005 moved out of input_cp2k [fawzi]
12 : !> 07.2024 moved out of input_cp2k [JGH]
13 : !> \author fawzi
14 : ! **************************************************************************************************
15 : MODULE input_cp2k_se
16 : USE cp_output_handling, ONLY: cp_print_key_section_create,&
17 : high_print_level
18 : USE cp_units, ONLY: cp_unit_to_cp2k
19 : USE input_constants, ONLY: &
20 : do_se_is_kdso, do_se_is_kdso_d, do_se_is_slater, do_se_lr_ewald, do_se_lr_ewald_gks, &
21 : do_se_lr_ewald_r3, do_se_lr_none, gaussian, numerical, slater
22 : USE input_cp2k_mm, ONLY: create_neighbor_lists_section
23 : USE input_keyword_types, ONLY: keyword_create,&
24 : keyword_release,&
25 : keyword_type
26 : USE input_section_types, ONLY: section_add_keyword,&
27 : section_add_subsection,&
28 : section_create,&
29 : section_release,&
30 : section_type
31 : USE input_val_types, ONLY: char_t,&
32 : real_t
33 : USE kinds, ONLY: dp
34 : USE string_utilities, ONLY: s2a
35 : #include "./base/base_uses.f90"
36 :
37 : IMPLICIT NONE
38 : PRIVATE
39 :
40 : CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_se'
41 :
42 : PUBLIC :: create_se_control_section
43 :
44 : CONTAINS
45 :
46 : ! **************************************************************************************************
47 : !> \brief ...
48 : !> \param section ...
49 : ! **************************************************************************************************
50 8546 : SUBROUTINE create_se_control_section(section)
51 : TYPE(section_type), POINTER :: section
52 :
53 : TYPE(keyword_type), POINTER :: keyword
54 : TYPE(section_type), POINTER :: subsection
55 :
56 8546 : NULLIFY (keyword)
57 8546 : CPASSERT(.NOT. ASSOCIATED(section))
58 : CALL section_create(section, __LOCATION__, name="SE", &
59 : description="Parameters needed to set up the Semi-empirical methods", &
60 8546 : n_keywords=8, n_subsections=0, repeats=.FALSE.)
61 :
62 : CALL keyword_create(keyword, __LOCATION__, name="ORTHOGONAL_BASIS", &
63 : description="Assume orthogonal basis set. This flag is overwritten by "// &
64 : "methods with fixed orthogonal/non-orthogonal basis set.", &
65 8546 : usage="ORTHOGONAL_BASIS", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
66 8546 : CALL section_add_keyword(section, keyword)
67 8546 : CALL keyword_release(keyword)
68 :
69 : CALL keyword_create(keyword, __LOCATION__, name="STO_NG", &
70 : description="Provides the order of the Slater orbital expansion of Gaussian-Type Orbitals.", &
71 8546 : usage="STO_NG", default_i_val=6)
72 8546 : CALL section_add_keyword(section, keyword)
73 8546 : CALL keyword_release(keyword)
74 :
75 : CALL keyword_create(keyword, __LOCATION__, name="ANALYTICAL_GRADIENTS", &
76 : description="Nuclear Gradients are computed analytically or numerically", &
77 8546 : usage="ANALYTICAL_GRADIENTS", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
78 8546 : CALL section_add_keyword(section, keyword)
79 8546 : CALL keyword_release(keyword)
80 :
81 : CALL keyword_create(keyword, __LOCATION__, name="DELTA", &
82 : description="Step size in finite difference force calculation", &
83 8546 : usage="DELTA {real} ", default_r_val=1.e-6_dp)
84 8546 : CALL section_add_keyword(section, keyword)
85 8546 : CALL keyword_release(keyword)
86 :
87 : CALL keyword_create(keyword, __LOCATION__, name="INTEGRAL_SCREENING", &
88 : description="Specifies the functional form for the ", &
89 : usage="INTEGRAL_SCREENING (KDSO|KDSO-D|SLATER)", &
90 : enum_c_vals=s2a("KDSO", "KDSO-D", "SLATER"), &
91 : enum_i_vals=(/do_se_IS_kdso, do_se_IS_kdso_d, do_se_IS_slater/), &
92 : enum_desc=s2a("Uses the standard NDDO Klopman-Dewar-Sabelli-Ohno equation "// &
93 : "for the screening of the Coulomb interactions.", &
94 : "Uses a modified Klopman-Dewar-Sabelli-Ohno equation, dumping the screening "// &
95 : "parameter for the Coulomb interactions.", &
96 : "Uses an exponential Slater-type function for modelling the Coulomb interactions."), &
97 8546 : default_i_val=do_se_IS_kdso)
98 8546 : CALL section_add_keyword(section, keyword)
99 8546 : CALL keyword_release(keyword)
100 :
101 : CALL keyword_create(keyword, __LOCATION__, name="PERIODIC", &
102 : description="Specifies the type of treatment for the electrostatic long-range part "// &
103 : "in semi-empirical calculations.", &
104 : usage="PERIODIC (NONE|EWALD|EWALD_R3|EWALD_GKS)", &
105 : enum_c_vals=s2a("NONE", "EWALD", "EWALD_R3", "EWALD_GKS"), &
106 : enum_i_vals=(/do_se_lr_none, do_se_lr_ewald, do_se_lr_ewald_r3, do_se_lr_ewald_gks/), &
107 : enum_desc=s2a("The long-range part is not explicitly treaten. The interaction "// &
108 : "depends uniquely on the Cutoffs used for the calculation.", &
109 : "Enables the usage of Multipoles Ewald summation schemes. The short-range part "// &
110 : "is tapered according the value of RC_COULOMB.", &
111 : "Enables the usage of Multipoles Ewald summation schemes together with a long-range "// &
112 : "treatment for the 1/R^3 term, deriving from the short-range component. This option "// &
113 : "is active only for K-DSO integral screening type.", &
114 : "Use Ewald directly in Coulomb integral evaluation, works only with Slater screening"), &
115 8546 : default_i_val=do_se_lr_none)
116 8546 : CALL section_add_keyword(section, keyword)
117 8546 : CALL keyword_release(keyword)
118 :
119 : CALL keyword_create(keyword, __LOCATION__, name="FORCE_KDSO-D_EXCHANGE", &
120 : description="This keywords forces the usage of the KDSO-D integral screening "// &
121 : "for the Exchange integrals (default is to apply the screening only to the "// &
122 8546 : "Coulomb integrals.", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
123 8546 : CALL section_add_keyword(section, keyword)
124 8546 : CALL keyword_release(keyword)
125 :
126 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION", &
127 : description="Use dispersion correction", &
128 : lone_keyword_l_val=.TRUE., &
129 8546 : usage="DISPERSION", default_l_val=.FALSE.)
130 8546 : CALL section_add_keyword(section, keyword)
131 8546 : CALL keyword_release(keyword)
132 :
133 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_PARAMETER_FILE", &
134 : description="Specify file that contains the atomic dispersion parameters", &
135 : usage="DISPERSION_PARAMETER_FILE filename", &
136 8546 : n_var=1, type_of_var=char_t, default_c_val="")
137 8546 : CALL section_add_keyword(section, keyword)
138 8546 : CALL keyword_release(keyword)
139 :
140 : CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_RADIUS", &
141 : description="Define radius of dispersion interaction", &
142 8546 : usage="DISPERSION_RADIUS", default_r_val=15._dp)
143 8546 : CALL section_add_keyword(section, keyword)
144 8546 : CALL keyword_release(keyword)
145 :
146 : CALL keyword_create(keyword, __LOCATION__, name="COORDINATION_CUTOFF", &
147 : description="Define cutoff for coordination number calculation", &
148 8546 : usage="COORDINATION_CUTOFF", default_r_val=1.e-6_dp)
149 8546 : CALL section_add_keyword(section, keyword)
150 8546 : CALL keyword_release(keyword)
151 :
152 : CALL keyword_create(keyword, __LOCATION__, name="D3_SCALING", &
153 : description="Scaling parameters (s6,sr6,s8) for the D3 dispersion method,", &
154 8546 : usage="D3_SCALING 1.0 1.0 1.0", n_var=3, default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp/))
155 8546 : CALL section_add_keyword(section, keyword)
156 8546 : CALL keyword_release(keyword)
157 :
158 8546 : NULLIFY (subsection)
159 8546 : CALL create_coulomb_section(subsection)
160 8546 : CALL section_add_subsection(section, subsection)
161 8546 : CALL section_release(subsection)
162 :
163 8546 : CALL create_exchange_section(subsection)
164 8546 : CALL section_add_subsection(section, subsection)
165 8546 : CALL section_release(subsection)
166 :
167 8546 : CALL create_screening_section(subsection)
168 8546 : CALL section_add_subsection(section, subsection)
169 8546 : CALL section_release(subsection)
170 :
171 8546 : CALL create_lr_corr_section(subsection)
172 8546 : CALL section_add_subsection(section, subsection)
173 8546 : CALL section_release(subsection)
174 :
175 8546 : CALL create_neighbor_lists_section(subsection)
176 8546 : CALL section_add_subsection(section, subsection)
177 8546 : CALL section_release(subsection)
178 :
179 8546 : CALL create_se_memory_section(subsection)
180 8546 : CALL section_add_subsection(section, subsection)
181 8546 : CALL section_release(subsection)
182 :
183 8546 : CALL create_se_print_section(subsection)
184 8546 : CALL section_add_subsection(section, subsection)
185 8546 : CALL section_release(subsection)
186 :
187 8546 : CALL create_se_ga_section(subsection)
188 8546 : CALL section_add_subsection(section, subsection)
189 8546 : CALL section_release(subsection)
190 :
191 8546 : END SUBROUTINE create_se_control_section
192 :
193 : ! **************************************************************************************************
194 : !> \brief Create the COULOMB se section
195 : !> \param section the section to create
196 : !> \date 03.2009
197 : !> \author Teodoro Laino [tlaino]
198 : ! **************************************************************************************************
199 8546 : SUBROUTINE create_lr_corr_section(section)
200 : TYPE(section_type), POINTER :: section
201 :
202 : TYPE(keyword_type), POINTER :: keyword
203 :
204 8546 : CPASSERT(.NOT. ASSOCIATED(section))
205 : CALL section_create(section, __LOCATION__, name="LR_CORRECTION", &
206 : description="Setup parameters for the evaluation of the long-range correction term in SE "// &
207 8546 : "calculations.", n_keywords=0, n_subsections=1, repeats=.FALSE.)
208 8546 : NULLIFY (keyword)
209 :
210 : CALL keyword_create(keyword, __LOCATION__, name="CUTOFF", &
211 : description="Atomic Cutoff Radius Cutoff for the evaluation of the long-ranbe correction integrals. ", &
212 : usage="CUTOFF {real} ", unit_str="angstrom", &
213 8546 : default_r_val=cp_unit_to_cp2k(value=6.0_dp, unit_str="angstrom"))
214 8546 : CALL section_add_keyword(section, keyword)
215 8546 : CALL keyword_release(keyword)
216 :
217 : CALL keyword_create(keyword, __LOCATION__, name="RC_TAPER", &
218 : description="Atomic Cutoff Radius Cutoff for Tapering the long-range correction integrals. "// &
219 : "If not specified it assumes the same value specified for the CUTOFF.", &
220 8546 : usage="RC_TAPER {real} ", unit_str="angstrom", type_of_var=real_t)
221 8546 : CALL section_add_keyword(section, keyword)
222 8546 : CALL keyword_release(keyword)
223 :
224 : CALL keyword_create(keyword, __LOCATION__, name="RC_RANGE", &
225 : description="Range of cutoff switch function (tapering): 0.5*(1-TANH((r-r0)/RC_RANGE)), "// &
226 : "where r0=2.0*RC_TAPER-20.0*RC_RANGE.", &
227 8546 : usage="RC_RANGE {real} ", unit_str="angstrom", default_r_val=0.0_dp)
228 8546 : CALL section_add_keyword(section, keyword)
229 8546 : CALL keyword_release(keyword)
230 :
231 8546 : END SUBROUTINE create_lr_corr_section
232 :
233 : ! **************************************************************************************************
234 : !> \brief Create the COULOMB se section
235 : !> \param section the section to create
236 : !> \date 03.2009
237 : !> \author Teodoro Laino [tlaino]
238 : ! **************************************************************************************************
239 8546 : SUBROUTINE create_coulomb_section(section)
240 : TYPE(section_type), POINTER :: section
241 :
242 : TYPE(keyword_type), POINTER :: keyword
243 :
244 8546 : CPASSERT(.NOT. ASSOCIATED(section))
245 : CALL section_create(section, __LOCATION__, name="COULOMB", &
246 : description="Setup parameters for the evaluation of the COULOMB term in SE "// &
247 8546 : "calculations.", n_keywords=0, n_subsections=1, repeats=.FALSE.)
248 8546 : NULLIFY (keyword)
249 :
250 : CALL keyword_create( &
251 : keyword, __LOCATION__, name="CUTOFF", &
252 : description="Atomic Cutoff Radius Cutoff for the evaluation of the Coulomb integrals. "// &
253 : "For non-periodic calculation the default value is exactly the full cell dimension, in order "// &
254 : "to evaluate all pair interactions. Instead, for periodic calculations the default numerical value is used.", &
255 : usage="CUTOFF {real} ", unit_str="angstrom", &
256 8546 : default_r_val=cp_unit_to_cp2k(value=12.0_dp, unit_str="angstrom"))
257 8546 : CALL section_add_keyword(section, keyword)
258 8546 : CALL keyword_release(keyword)
259 :
260 : CALL keyword_create(keyword, __LOCATION__, name="RC_TAPER", &
261 : description="Atomic Cutoff Radius Cutoff for Tapering Coulomb integrals. "// &
262 : "If not specified it assumes the same value specified for the CUTOFF.", &
263 8546 : usage="RC_TAPER {real} ", unit_str="angstrom", type_of_var=real_t)
264 8546 : CALL section_add_keyword(section, keyword)
265 8546 : CALL keyword_release(keyword)
266 :
267 : CALL keyword_create(keyword, __LOCATION__, name="RC_RANGE", &
268 : description="Range of cutoff switch function (tapering): 0.5*(1-TANH((r-r0)/RC_RANGE)), "// &
269 : "where r0=2.0*RC_TAPER-20.0*RC_RANGE.", &
270 8546 : usage="RC_RANGE {real} ", unit_str="angstrom", default_r_val=0.0_dp)
271 8546 : CALL section_add_keyword(section, keyword)
272 8546 : CALL keyword_release(keyword)
273 :
274 8546 : END SUBROUTINE create_coulomb_section
275 :
276 : ! **************************************************************************************************
277 : !> \brief Create the EXCHANGE se section
278 : !> \param section the section to create
279 : !> \date 03.2009
280 : !> \author Teodoro Laino [tlaino]
281 : ! **************************************************************************************************
282 8546 : SUBROUTINE create_exchange_section(section)
283 : TYPE(section_type), POINTER :: section
284 :
285 : TYPE(keyword_type), POINTER :: keyword
286 :
287 8546 : CPASSERT(.NOT. ASSOCIATED(section))
288 : CALL section_create(section, __LOCATION__, name="EXCHANGE", &
289 : description="Setup parameters for the evaluation of the EXCHANGE and "// &
290 : "core Hamiltonian terms in SE calculations.", n_keywords=0, n_subsections=1, &
291 8546 : repeats=.FALSE.)
292 8546 : NULLIFY (keyword)
293 :
294 : CALL keyword_create(keyword, __LOCATION__, name="CUTOFF", &
295 : description="Atomic Cutoff Radius Cutoff for the evaluation of the Exchange integrals. "// &
296 : "For non-periodic calculation the default value is exactly the full cell dimension, in order "// &
297 : "to evaluate all pair interactions. Instead, for periodic calculations the default is the "// &
298 : "minimum value between 1/4 of the cell dimension and the value specified in input (either"// &
299 : " explicitly defined or the default numerical value).", &
300 : usage="CUTOFF {real} ", unit_str="angstrom", &
301 8546 : default_r_val=cp_unit_to_cp2k(value=12.0_dp, unit_str="angstrom"))
302 8546 : CALL section_add_keyword(section, keyword)
303 8546 : CALL keyword_release(keyword)
304 :
305 : CALL keyword_create(keyword, __LOCATION__, name="RC_TAPER", &
306 : description="Atomic Cutoff Radius Cutoff for Tapering Exchange integrals. "// &
307 : "If not specified it assumes the same value specified for the CUTOFF.", &
308 8546 : usage="RC_TAPER {real} ", unit_str="angstrom", type_of_var=real_t)
309 8546 : CALL section_add_keyword(section, keyword)
310 8546 : CALL keyword_release(keyword)
311 :
312 : CALL keyword_create(keyword, __LOCATION__, name="RC_RANGE", &
313 : description="Range of cutoff switch function (tapering): 0.5*(1-TANH((r-r0)/RC_RANGE)), "// &
314 : "where r0=2.0*RC_TAPER-20.0*RC_RANGE.", &
315 8546 : usage="RC_RANGE {real} ", unit_str="angstrom", default_r_val=0.0_dp)
316 8546 : CALL section_add_keyword(section, keyword)
317 8546 : CALL keyword_release(keyword)
318 :
319 8546 : END SUBROUTINE create_exchange_section
320 :
321 : ! **************************************************************************************************
322 : !> \brief Create the SCREENING se section
323 : !> \param section the section to create
324 : !> \date 03.2009
325 : !> \author Teodoro Laino [tlaino]
326 : ! **************************************************************************************************
327 8546 : SUBROUTINE create_screening_section(section)
328 : TYPE(section_type), POINTER :: section
329 :
330 : TYPE(keyword_type), POINTER :: keyword
331 :
332 8546 : CPASSERT(.NOT. ASSOCIATED(section))
333 : CALL section_create(section, __LOCATION__, name="SCREENING", &
334 : description="Setup parameters for the tapering of the Coulomb/Exchange Screening in "// &
335 8546 : "KDSO-D integral scheme,", n_keywords=0, n_subsections=1, repeats=.FALSE.)
336 8546 : NULLIFY (keyword)
337 :
338 : CALL keyword_create(keyword, __LOCATION__, name="RC_TAPER", &
339 : description="Atomic Cutoff Radius Cutoff for Tapering the screening term. ", &
340 : usage="RC_TAPER {real} ", unit_str="angstrom", &
341 8546 : default_r_val=cp_unit_to_cp2k(value=12.0_dp, unit_str="angstrom"))
342 8546 : CALL section_add_keyword(section, keyword)
343 8546 : CALL keyword_release(keyword)
344 :
345 : CALL keyword_create(keyword, __LOCATION__, name="RC_RANGE", &
346 : description="Range of cutoff switch function (tapering): 0.5*(1-TANH((r-r0)/RC_RANGE)), "// &
347 : "where r0=2*RC_TAPER-20*RC_RANGE.", &
348 8546 : usage="RC_RANGE {real} ", unit_str="angstrom", default_r_val=0.0_dp)
349 8546 : CALL section_add_keyword(section, keyword)
350 8546 : CALL keyword_release(keyword)
351 :
352 8546 : END SUBROUTINE create_screening_section
353 :
354 : ! **************************************************************************************************
355 : !> \brief Create the print se section
356 : !> \param section the section to create
357 : !> \author teo
358 : ! **************************************************************************************************
359 8546 : SUBROUTINE create_se_print_section(section)
360 : TYPE(section_type), POINTER :: section
361 :
362 : TYPE(section_type), POINTER :: print_key
363 :
364 8546 : CPASSERT(.NOT. ASSOCIATED(section))
365 : CALL section_create(section, __LOCATION__, name="print", &
366 : description="Section of possible print options in SE code.", &
367 8546 : n_keywords=0, n_subsections=1, repeats=.FALSE.)
368 :
369 8546 : NULLIFY (print_key)
370 : CALL cp_print_key_section_create(print_key, __LOCATION__, "NEIGHBOR_LISTS", &
371 : description="Activates the printing of the neighbor lists used"// &
372 : " for the periodic SE calculations.", &
373 8546 : print_level=high_print_level, filename="", unit_str="angstrom")
374 8546 : CALL section_add_subsection(section, print_key)
375 8546 : CALL section_release(print_key)
376 :
377 : CALL cp_print_key_section_create(print_key, __LOCATION__, "SUBCELL", &
378 : description="Activates the printing of the subcells used for the "// &
379 : "generation of neighbor lists for periodic SE.", &
380 8546 : print_level=high_print_level, filename="__STD_OUT__")
381 8546 : CALL section_add_subsection(section, print_key)
382 8546 : CALL section_release(print_key)
383 :
384 : CALL cp_print_key_section_create(print_key, __LOCATION__, "EWALD_INFO", &
385 : description="Activates the printing of the information for "// &
386 : "Ewald multipole summation in periodic SE.", &
387 8546 : print_level=high_print_level, filename="__STD_OUT__")
388 8546 : CALL section_add_subsection(section, print_key)
389 8546 : CALL section_release(print_key)
390 :
391 8546 : END SUBROUTINE create_se_print_section
392 :
393 : ! **************************************************************************************************
394 : !> \brief creates the input section for use with the GA part of the code
395 : !> \param section the section to create
396 : !> \author Teodoro Laino [tlaino] - University of Zurich - 05.2008
397 : ! **************************************************************************************************
398 8546 : SUBROUTINE create_se_ga_section(section)
399 : TYPE(section_type), POINTER :: section
400 :
401 : TYPE(keyword_type), POINTER :: keyword
402 :
403 8546 : CPASSERT(.NOT. ASSOCIATED(section))
404 : CALL section_create(section, __LOCATION__, name="GA", &
405 : description="Sets up memory parameters for the storage of the integrals", &
406 8546 : n_keywords=1, n_subsections=0, repeats=.FALSE.)
407 8546 : NULLIFY (keyword)
408 :
409 : CALL keyword_create( &
410 : keyword, __LOCATION__, &
411 : name="NCELLS", &
412 : description="Defines the number of linked cells for the neighbor list. "// &
413 : "Default value is number of processors", &
414 : usage="NCELLS 10", &
415 8546 : default_i_val=0)
416 8546 : CALL section_add_keyword(section, keyword)
417 8546 : CALL keyword_release(keyword)
418 8546 : END SUBROUTINE create_se_ga_section
419 :
420 : ! **************************************************************************************************
421 : !> \brief creates the input section for the se-memory part integral storage
422 : !> \param section the section to create
423 : !> \author Teodoro Laino [tlaino] - University of Zurich - 05.2008
424 : ! **************************************************************************************************
425 8546 : SUBROUTINE create_se_memory_section(section)
426 : TYPE(section_type), POINTER :: section
427 :
428 : TYPE(keyword_type), POINTER :: keyword
429 :
430 8546 : CPASSERT(.NOT. ASSOCIATED(section))
431 : CALL section_create(section, __LOCATION__, name="MEMORY", &
432 : description="Sets up memory parameters for the storage of the integrals", &
433 8546 : n_keywords=1, n_subsections=0, repeats=.FALSE.)
434 8546 : NULLIFY (keyword)
435 : CALL keyword_create( &
436 : keyword, __LOCATION__, &
437 : name="EPS_STORAGE", &
438 : description="Storage threshold for compression is EPS_STORAGE", &
439 : usage="EPS_STORAGE 1.0E-10", &
440 8546 : default_r_val=1.0E-10_dp)
441 8546 : CALL section_add_keyword(section, keyword)
442 8546 : CALL keyword_release(keyword)
443 :
444 : CALL keyword_create( &
445 : keyword, __LOCATION__, &
446 : name="MAX_MEMORY", &
447 : description="Defines the maximum amount of memory [MB] used to store precomputed "// &
448 : "(possibly compressed) two-electron two-center integrals", &
449 : usage="MAX_MEMORY 256", &
450 8546 : default_i_val=50)
451 8546 : CALL section_add_keyword(section, keyword)
452 8546 : CALL keyword_release(keyword)
453 :
454 : CALL keyword_create(keyword, __LOCATION__, name="COMPRESS", &
455 : description="Enables the compression of the integrals in memory.", &
456 : usage="COMPRESS <LOGICAL>", &
457 8546 : default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
458 8546 : CALL section_add_keyword(section, keyword)
459 8546 : CALL keyword_release(keyword)
460 :
461 8546 : END SUBROUTINE create_se_memory_section
462 :
463 : END MODULE input_cp2k_se
|