30 use,
intrinsic :: iso_fortran_env
51#include "xc_vxc_nc_inc.F90"
54 real(real64),
intent(in) :: global(:,:)
55 real(real64),
intent(out) :: local(:,:)
56 integer,
intent(in) :: n_block
57 integer,
intent(in) :: nspin
58 integer,
intent(in) :: ip
67 local(is, ib) = global(ib + ip - 1, is)
75 real(real64),
intent(in) :: local(:,:)
76 real(real64),
intent(inout) :: global(:,:)
77 integer,
intent(in) :: n_block
78 integer,
intent(in) :: spin_channels
79 integer,
intent(in) :: ip
85 do is = 1, spin_channels
88 global(ib + ip - 1, is) = global(ib + ip - 1, is) + local(is, ib)
96 type(internal_quantities_t),
intent(inout) :: quantities
100 nullify(quantities%rho)
101 safe_deallocate_a(quantities%dens)
102 safe_deallocate_a(quantities%gdens)
103 safe_deallocate_a(quantities%ldens)
104 safe_deallocate_a(quantities%tau)
This module calculates the derivatives (gradients, Laplacians, etc.) of a function.
This module implements the underlying real-space grid.
This module is intended to contain "only mathematical" functions and procedures.
subroutine xc_compute_vxc_nc(gr, xcs, st, namespace, quantities, vxc, ex, ec, vtau, ex_density, ec_density)
This routines is similar to xc_update_internal_quantities but for noncollinear functionals,...
subroutine, public xc_get_nc_vxc(gr, xcs, st, kpoints, space, namespace, rho, vxc, ex, ec, vtau, ex_density, ec_density)
This routines is similar to xc_get_vxc but for noncollinear functionals, which are not implemented in...
subroutine xc_release_internal_quantities(quantities)
subroutine copy_local_to_global(local, global, n_block, spin_channels, ip)
subroutine copy_global_to_local(global, local, n_block, nspin, ip)
pure logical function, public family_is_mgga(family, only_collinear)
Is the xc function part of the mGGA family.
logical pure function, public family_is_mgga_with_exc(xcs)
Is the xc function part of the mGGA family with an energy functional.
pure logical function, public family_is_nc_mgga(family)