29 #include "./base/base_uses.f90"
35 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'atom'
46 TYPE(section_vals_type),
POINTER :: root_section
48 CHARACTER(len=*),
PARAMETER :: routinen =
'atom_code'
50 INTEGER :: handle, iw, run_type_id
51 TYPE(cp_logger_type),
POINTER :: logger
52 TYPE(section_vals_type),
POINTER :: atom_section
54 CALL timeset(routinen, handle)
57 NULLIFY (atom_section)
64 CALL atom_test(atom_section)
67 SELECT CASE (run_type_id)
94 SUBROUTINE atom_test(atom_section)
95 TYPE(section_vals_type),
POINTER :: atom_section
97 CHARACTER(len=*),
PARAMETER :: routinen =
'atom_test'
99 CHARACTER(len=2) :: elem
100 CHARACTER(len=default_string_length) :: z_string
101 INTEGER :: handle, i, z
102 LOGICAL :: explicit_elem, explicit_z
104 CALL timeset(routinen, handle)
109 IF (explicit_z .AND. (z <= 0 .AND. z >
nelem))
THEN
111 WRITE (z_string,
'(I0)') z
112 CALL cp_abort(__location__, &
113 "The element with the atomic number "//trim(z_string)//
" is not found in the periodic table.")
116 IF (explicit_elem)
THEN
119 IF (
ptable(i)%symbol == elem)
EXIT
123 CALL cp_abort(__location__, &
124 "The element symbol ("//trim(elem)//
") is not found in the periodic table.")
128 IF (explicit_z .AND. explicit_elem)
THEN
131 IF (
ptable(z)%symbol /= elem)
THEN
132 WRITE (z_string,
'(I0)') z
133 CALL cp_abort(__location__, &
134 "The element symbol ("//trim(elem)// &
135 ") contradicts with the explicitly given atomic number ("// &
136 trim(z_string)//
").")
138 ELSE IF (.NOT. (explicit_z .OR. explicit_elem))
THEN
141 cpassert(
ptable(z)%symbol == elem)
144 CALL timestop(handle)
145 END SUBROUTINE atom_test
subroutine, public atom_basis_opt(atom_section)
Optimize the atomic basis set.
subroutine, public atom_energy_opt(atom_section)
Compute the atomic energy.
subroutine, public atom_pseudo_opt(atom_section)
...
subroutine, public atom_code(root_section)
Driver routine to perform atomic calculations.
various routines to log and control the output. The idea is that decisions about where to log should ...
type(cp_logger_type) function, pointer, public cp_get_default_logger()
returns the default logger
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer function, public cp_print_key_unit_nr(logger, basis_section, print_key_path, extension, middle_name, local, log_filename, ignore_should_output, file_form, file_position, file_action, file_status, do_backup, on_file, is_new_file, mpi_io, fout)
...
subroutine, public cp_print_key_finished_output(unit_nr, logger, basis_section, print_key_path, local, ignore_should_output, on_file, mpi_io)
should be called after you finish working with a unit obtained with cp_print_key_unit_nr,...
Defines the basic variable types.
integer, parameter, public default_string_length
Periodic Table related data definitions.
type(atom), dimension(0:nelem), public ptable
integer, parameter, public nelem