(git:d5c4d39)
Loading...
Searching...
No Matches
realspace_grid_cube_unittest.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
8 USE kinds, ONLY: dp
12
13 IMPLICIT NONE
14
15 CHARACTER(LEN=13) :: value
16 CHARACTER(LEN=92) :: slice_values
17 CHARACTER(LEN=79) :: values
18 REAL(kind=dp), DIMENSION(6) :: buffer, reference
19 REAL(kind=dp), DIMENSION(7) :: slice_buffer, slice_reference
20
21 WRITE (value, cube_value_format) 0.33004e-101_dp
22 IF (index(value, "E-101") <= 0) &
23 error stop "Cube value format must preserve three-digit negative exponents."
24
25 reference = [0.0_dp, -0.91458e-35_dp, 0.33004e-101_dp, &
26 -0.32487e-103_dp, 1.0_dp, -1.0_dp]
27 WRITE (values(1:78), cube_values_format) reference
28 values(79:79) = new_line("C")
29 IF (index(values, "E-101") <= 0) &
30 error stop "Cube line format must preserve E-101."
31 IF (index(values, "E-103") <= 0) &
32 error stop "Cube line format must preserve E-103."
33 CALL cube_read_values(values, buffer)
34 IF (maxval(abs(buffer - reference)) > 1.0e-12_dp) &
35 error stop "Cube reader must parse adjacent explicit-exponent values."
36
37 slice_reference(1:6) = reference
38 slice_reference(7) = 0.27183e-123_dp
39 WRITE (slice_values(1:78), cube_values_format) slice_reference(1:6)
40 slice_values(79:79) = new_line("C")
41 WRITE (slice_values(80:92), cube_value_format) slice_reference(7)
42 CALL cube_read_values(slice_values, slice_buffer)
43 IF (maxval(abs(slice_buffer - slice_reference)) > 1.0e-12_dp) &
44 error stop "Cube reader must parse multi-line z-slices."
45
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Generate Gaussian cube files.
character(len= *), parameter, public cube_values_format
character(len= *), parameter, public cube_value_format
subroutine, public cube_read_values(values, buffer)
Read cube values from a character buffer.
program realspace_grid_cube_unittest