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
22 IF (index(
value,
"E-101") <= 0) &
23 error stop
"Cube value format must preserve three-digit negative exponents."
25 reference = [0.0_dp, -0.91458e-35_dp, 0.33004e-101_dp, &
26 -0.32487e-103_dp, 1.0_dp, -1.0_dp]
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."
34 IF (maxval(abs(buffer - reference)) > 1.0e-12_dp) &
35 error stop
"Cube reader must parse adjacent explicit-exponent values."
37 slice_reference(1:6) = reference
38 slice_reference(7) = 0.27183e-123_dp
40 slice_values(79:79) = new_line(
"C")
43 IF (maxval(abs(slice_buffer - slice_reference)) > 1.0e-12_dp) &
44 error stop
"Cube reader must parse multi-line z-slices."
Defines the basic variable types.
integer, parameter, public dp
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