C_ommp_set_external_field Subroutine

public subroutine C_ommp_set_external_field(s_prt, ext_field_prt, solver, matv) bind(c, name="0")

Arguments

Type IntentOptional Attributes Name
type(c_ptr), value :: s_prt
type(c_ptr), value :: ext_field_prt
integer(kind=ommp_integer), intent(in), value :: solver
integer(kind=ommp_integer), intent(in), value :: matv

Calls

proc~~c_ommp_set_external_field~~CallsGraph proc~c_ommp_set_external_field C_ommp_set_external_field proc~ommp_set_external_field ommp_set_external_field proc~c_ommp_set_external_field->proc~ommp_set_external_field interface~mallocate mallocate proc~ommp_set_external_field->interface~mallocate proc~polarization polarization proc~ommp_set_external_field->proc~polarization proc~prepare_polelec prepare_polelec proc~ommp_set_external_field->proc~prepare_polelec interface~mfree mfree proc~ommp_set_external_field->interface~mfree proc~r_alloc1 r_alloc1 interface~mallocate->proc~r_alloc1 proc~i_alloc2 i_alloc2 interface~mallocate->proc~i_alloc2 proc~r_alloc3 r_alloc3 interface~mallocate->proc~r_alloc3 proc~i_alloc3 i_alloc3 interface~mallocate->proc~i_alloc3 proc~l_alloc2 l_alloc2 interface~mallocate->proc~l_alloc2 proc~i_alloc1 i_alloc1 interface~mallocate->proc~i_alloc1 proc~r_alloc2 r_alloc2 interface~mallocate->proc~r_alloc2 proc~l_alloc1 l_alloc1 interface~mallocate->proc~l_alloc1 proc~polarization->interface~mallocate proc~polarization->interface~mfree proc~ommp_message ommp_message proc~polarization->proc~ommp_message proc~time_pull time_pull proc~polarization->proc~time_pull proc~inversion_solver inversion_solver proc~polarization->proc~inversion_solver proc~fatal_error fatal_error proc~polarization->proc~fatal_error proc~time_push time_push proc~polarization->proc~time_push proc~create_tmat create_tmat proc~polarization->proc~create_tmat proc~conjugate_gradient_solver conjugate_gradient_solver proc~polarization->proc~conjugate_gradient_solver proc~jacobi_diis_solver jacobi_diis_solver proc~polarization->proc~jacobi_diis_solver proc~prepare_polelec->interface~mallocate proc~elec_prop_d2d elec_prop_D2D proc~prepare_polelec->proc~elec_prop_d2d proc~prepare_polelec->proc~fatal_error proc~elec_prop_d2m elec_prop_D2M proc~prepare_polelec->proc~elec_prop_d2m proc~elec_prop_m2d elec_prop_M2D proc~prepare_polelec->proc~elec_prop_m2d proc~r_free1 r_free1 interface~mfree->proc~r_free1 proc~i_free3 i_free3 interface~mfree->proc~i_free3 proc~l_free2 l_free2 interface~mfree->proc~l_free2 proc~i_free1 i_free1 interface~mfree->proc~i_free1 proc~l_free1 l_free1 interface~mfree->proc~l_free1 proc~r_free3 r_free3 interface~mfree->proc~r_free3 proc~r_free2 r_free2 interface~mfree->proc~r_free2 proc~i_free2 i_free2 interface~mfree->proc~i_free2 proc~elec_prop_d2d->proc~fatal_error proc~mu_elec_prop mu_elec_prop proc~elec_prop_d2d->proc~mu_elec_prop proc~damped_coulomb_kernel damped_coulomb_kernel proc~elec_prop_d2d->proc~damped_coulomb_kernel proc~memory_init memory_init proc~r_alloc1->proc~memory_init proc~chk_alloc chk_alloc proc~r_alloc1->proc~chk_alloc proc~i_alloc2->proc~memory_init proc~i_alloc2->proc~chk_alloc proc~r_alloc3->proc~memory_init proc~r_alloc3->proc~chk_alloc proc~i_alloc3->proc~memory_init proc~i_alloc3->proc~chk_alloc proc~l_alloc2->proc~memory_init proc~l_alloc2->proc~chk_alloc proc~time_pull->proc~ommp_message proc~time_pull->proc~fatal_error proc~mem_stat mem_stat proc~time_pull->proc~mem_stat proc~inversion_solver->interface~mallocate proc~inversion_solver->interface~mfree dgetrf dgetrf proc~inversion_solver->dgetrf dgetri dgetri proc~inversion_solver->dgetri dgemm dgemm proc~inversion_solver->dgemm proc~chk_free chk_free proc~r_free1->proc~chk_free proc~i_free3->proc~chk_free proc~l_free2->proc~chk_free proc~i_free1->proc~chk_free proc~fatal_error->proc~ommp_message proc~close_output close_output proc~fatal_error->proc~close_output proc~elec_prop_d2m->proc~fatal_error proc~elec_prop_d2m->proc~mu_elec_prop proc~elec_prop_d2m->proc~damped_coulomb_kernel proc~elec_prop_m2d->proc~mu_elec_prop proc~elec_prop_m2d->proc~damped_coulomb_kernel proc~q_elec_prop q_elec_prop proc~elec_prop_m2d->proc~q_elec_prop proc~quad_elec_prop quad_elec_prop proc~elec_prop_m2d->proc~quad_elec_prop proc~i_alloc1->proc~memory_init proc~i_alloc1->proc~chk_alloc proc~r_alloc2->proc~memory_init proc~r_alloc2->proc~chk_alloc proc~l_alloc1->proc~memory_init proc~l_alloc1->proc~chk_alloc proc~time_push->proc~fatal_error proc~time_push->proc~mem_stat proc~create_tmat->proc~ommp_message proc~dipole_t dipole_T proc~create_tmat->proc~dipole_t proc~conjugate_gradient_solver->interface~mallocate proc~conjugate_gradient_solver->interface~mfree proc~conjugate_gradient_solver->proc~ommp_message proc~conjugate_gradient_solver->proc~fatal_error proc~jacobi_diis_solver->interface~mallocate proc~jacobi_diis_solver->interface~mfree proc~jacobi_diis_solver->proc~ommp_message proc~jacobi_diis_solver->proc~fatal_error proc~rmsvec rmsvec proc~jacobi_diis_solver->proc~rmsvec proc~diis diis proc~jacobi_diis_solver->proc~diis proc~l_free1->proc~chk_free proc~r_free3->proc~chk_free proc~r_free2->proc~chk_free proc~i_free2->proc~chk_free proc~dipole_t->proc~damped_coulomb_kernel proc~screening_rules screening_rules proc~dipole_t->proc~screening_rules proc~diis->interface~mallocate proc~diis->interface~mfree proc~makeb makeb proc~diis->proc~makeb dgesv dgesv proc~diis->dgesv proc~mem_stat->proc~memory_init proc~chk_alloc->proc~fatal_error proc~damped_coulomb_kernel->proc~fatal_error proc~coulomb_kernel coulomb_kernel proc~damped_coulomb_kernel->proc~coulomb_kernel proc~chk_free->proc~fatal_error proc~close_output->proc~ommp_message proc~screening_rules->proc~fatal_error proc~coulomb_kernel->proc~fatal_error

Contents


Source Code

        subroutine C_ommp_set_external_field(s_prt, ext_field_prt, solver, matv) &
                bind(c, name='ommp_set_external_field')
            implicit none
            
            type(c_ptr), value :: s_prt
            type(c_ptr), value :: ext_field_prt
            integer(ommp_integer), intent(in), value :: solver
            integer(ommp_integer), intent(in), value :: matv
            
            type(ommp_system), pointer :: s
            real(ommp_real), pointer :: ext_field(:,:)

            call c_f_pointer(s_prt, s)
            call c_f_pointer(ext_field_prt, ext_field, [3, s%eel%pol_atoms])

            call ommp_set_external_field(s, ext_field, solver, matv, .true.)
        end subroutine C_ommp_set_external_field