25#include "./base/base_uses.f90"
31 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'xc_write_output'
44 INTEGER,
INTENT(IN) :: iounit
46 LOGICAL,
INTENT(IN) :: lsd
48 CHARACTER(LEN=2*default_string_length) :: shortform
49 CHARACTER(LEN=:),
ALLOCATABLE :: reference
50 INTEGER :: ifun, il, myfun
71 IF (.NOT.
ASSOCIATED(xc_fun))
EXIT
74 IF (libxc_used)
CALL xc_write_libxc_info(iounit)
80 IF (.NOT.
ASSOCIATED(xc_fun))
EXIT
82 ALLOCATE (
CHARACTER(LEN=libxc_get_reference_length(xc_fun, lsd)) :: reference)
84 ALLOCATE (
CHARACTER(LEN=20*default_string_length) :: reference)
87 WRITE (iounit, fmt=
"(' FUNCTIONAL| ',a,':')") &
88 trim(xc_fun%section%name)
89 DO il = 1, len_trim(reference), 67
90 WRITE (iounit, fmt=
"(' FUNCTIONAL| ',a67)") reference(il:)
92 DEALLOCATE (reference)
95 WRITE (iounit, fmt=
"(' FUNCTIONAL| NO EXCHANGE-CORRELATION FUNCTIONAL USED.')")
110 SUBROUTINE xc_write_libxc_info(iounit)
111 INTEGER,
INTENT(IN) :: iounit
113 CHARACTER(LEN=10*default_string_length) :: reference
114 CHARACTER(LEN=default_string_length) :: compiled_version, doi, version
120 WRITE (iounit, fmt=
"(' FUNCTIONAL| LIBXC version ',a)") trim(version)
121 IF (trim(version) /= trim(compiled_version))
THEN
122 WRITE (iounit, fmt=
"(' FUNCTIONAL| LIBXC compiled against version ',a)") trim(compiled_version)
124 DO il = 1, len_trim(reference), 67
125 WRITE (iounit, fmt=
"(' FUNCTIONAL| ',a67)") reference(il:)
127 WRITE (iounit, fmt=
"(' FUNCTIONAL| doi: ',a)") trim(doi)
129 END SUBROUTINE xc_write_libxc_info
Defines the basic variable types.
integer, parameter, public default_string_length
subroutine, public xc_functional_get_info(functional, lsd, reference, shortform, needs, max_deriv, print_warn)
get the information about the given functional
calculates a functional from libxc and its derivatives
subroutine, public libxc_version_info(version, compiled_version)
info about the LibXC version
logical function, public libxc_check_existence_in_libxc(libxc_params)
This function checks whether a functional name belongs to LibXC.
integer function, public libxc_get_reference_length(libxc_params, lsd)
This function returns the maximum length of the reference string for a given LibXC functional.
subroutine, public libxc_library_reference(reference, doi)
Returns the citation LibXC asks for the library itself.
Writes information on XC functionals to output.
subroutine, public xc_write(iounit, xc_section, lsd)
...