grad_1e_ecp Subroutine

public subroutine grad_1e_ecp(infos, basis, coord, denab, de, logtol)

Uses

  • proc~~grad_1e_ecp~~UsesGraph proc~grad_1e_ecp grad_1e_ecp module~parallel parallel proc~grad_1e_ecp->module~parallel module~types types proc~grad_1e_ecp->module~types iso_c_binding iso_c_binding module~parallel->iso_c_binding iso_fortran_env iso_fortran_env module~parallel->iso_fortran_env module~precision precision module~parallel->module~precision mpi mpi module~parallel->mpi module~types->module~parallel module~types->iso_c_binding module~atomic_structure_m atomic_structure_m module~types->module~atomic_structure_m module~basis_tools basis_tools module~types->module~basis_tools module~functionals functionals module~types->module~functionals module~types->module~precision tagarray tagarray module~types->tagarray module~atomic_structure_m->iso_c_binding module~basis_tools->module~parallel module~basis_tools->iso_fortran_env module~basis_tools->module~atomic_structure_m module~basis_tools->module~precision module~constants constants module~basis_tools->module~constants module~io_constants io_constants module~basis_tools->module~io_constants module~functionals->iso_c_binding module~functionals->module~precision xc_f03_lib_m xc_f03_lib_m module~functionals->xc_f03_lib_m module~precision->iso_fortran_env module~constants->module~precision

@brief Effective core potential gradient

Arguments

Type IntentOptional Attributes Name
type(information), intent(inout), target :: infos
type(basis_set), intent(inout) :: basis
real(kind=dp), intent(in), contiguous :: coord(:,:)
real(kind=dp), intent(inout) :: denab(:)
real(kind=dp) :: de(:,:)
real(kind=dp), optional :: logtol

Calls

proc~~grad_1e_ecp~~CallsGraph proc~grad_1e_ecp grad_1e_ecp none~bcast par_env_t%bcast proc~grad_1e_ecp->none~bcast none~init~14 par_env_t%init proc~grad_1e_ecp->none~init~14 proc~add_ecpder add_ecpder proc~grad_1e_ecp->proc~add_ecpder none~par_env_t_bcast_byte par_env_t%par_env_t_bcast_byte none~bcast->none~par_env_t_bcast_byte none~par_env_t_bcast_c_bool par_env_t%par_env_t_bcast_c_bool none~bcast->none~par_env_t_bcast_c_bool none~par_env_t_bcast_dp_1d par_env_t%par_env_t_bcast_dp_1d none~bcast->none~par_env_t_bcast_dp_1d none~par_env_t_bcast_dp_2d par_env_t%par_env_t_bcast_dp_2d none~bcast->none~par_env_t_bcast_dp_2d none~par_env_t_bcast_dp_3d par_env_t%par_env_t_bcast_dp_3d none~bcast->none~par_env_t_bcast_dp_3d none~par_env_t_bcast_dp_4d par_env_t%par_env_t_bcast_dp_4d none~bcast->none~par_env_t_bcast_dp_4d none~par_env_t_bcast_dp_scalar par_env_t%par_env_t_bcast_dp_scalar none~bcast->none~par_env_t_bcast_dp_scalar none~par_env_t_bcast_int32_1d par_env_t%par_env_t_bcast_int32_1d none~bcast->none~par_env_t_bcast_int32_1d none~par_env_t_bcast_int32_scalar par_env_t%par_env_t_bcast_int32_scalar none~bcast->none~par_env_t_bcast_int32_scalar none~par_env_t_bcast_int64_1d par_env_t%par_env_t_bcast_int64_1d none~bcast->none~par_env_t_bcast_int64_1d none~par_env_t_bcast_int64_scalar par_env_t%par_env_t_bcast_int64_scalar none~bcast->none~par_env_t_bcast_int64_scalar mpi_comm_rank mpi_comm_rank none~init~14->mpi_comm_rank mpi_comm_size mpi_comm_size none~init~14->mpi_comm_size interface~compute_first_derivs compute_first_derivs proc~add_ecpder->interface~compute_first_derivs interface~free_integrator free_integrator proc~add_ecpder->interface~free_integrator interface~free_result free_result proc~add_ecpder->interface~free_result interface~init_integrator init_integrator proc~add_ecpder->interface~init_integrator interface~init_integrator_instance init_integrator_instance proc~add_ecpder->interface~init_integrator_instance interface~set_ecp_basis set_ecp_basis proc~add_ecpder->interface~set_ecp_basis none~bf_to_shell basis_set%bf_to_shell proc~add_ecpder->none~bf_to_shell mpi_bcast mpi_bcast none~par_env_t_bcast_byte->mpi_bcast none~par_env_t_bcast_c_bool->mpi_bcast none~par_env_t_bcast_dp_1d->mpi_bcast none~par_env_t_bcast_dp_2d->mpi_bcast none~par_env_t_bcast_dp_3d->mpi_bcast none~par_env_t_bcast_dp_4d->mpi_bcast none~par_env_t_bcast_dp_scalar->mpi_bcast none~par_env_t_bcast_int32_1d->mpi_bcast none~par_env_t_bcast_int32_scalar->mpi_bcast none~par_env_t_bcast_int64_1d->mpi_bcast none~par_env_t_bcast_int64_scalar->mpi_bcast

Called by

proc~~grad_1e_ecp~~CalledByGraph proc~grad_1e_ecp grad_1e_ecp proc~hf_gradient hf_gradient proc~hf_gradient->proc~grad_1e_ecp proc~tdhf_1e_grad tdhf_1e_grad proc~tdhf_1e_grad->proc~grad_1e_ecp proc~tdhf_gradient tdhf_gradient proc~tdhf_gradient->proc~tdhf_1e_grad proc~tdhf_gradient_c tdhf_gradient_C proc~tdhf_gradient_c->proc~tdhf_gradient

Source Code

  subroutine grad_1e_ecp(infos,basis, coord, denab, de, logtol)
    use types, only: information
    use parallel, only: par_env_t

    type(information), target, intent(inout) :: infos
    type(par_env_t) :: pe
    REAL(kind=dp), INTENT(INOUT) :: denab(:)
    type(basis_set), intent(inout) :: basis
    real(kind=dp), contiguous, intent(in) :: coord(:,:)
    REAL(kind=dp) :: de(:,:)

    REAL(kind=dp), optional :: logtol

    call pe%init(infos%mpiinfo%comm, infos%mpiinfo%usempi)

    if (pe%rank == 0) then
        call add_ecpder(basis, coord, denab, de)
    end if

    call pe%bcast(de, size(de))

  end subroutine grad_1e_ecp