Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Source Code
integer(c_int)function beach_kernel_update_charges(handle,nsrc,src_q_ptr)&bind(C,name='beach_kernel_update_charges')result(status)type(c_ptr),value::handleinteger(c_int),value::nsrctype(c_ptr),value::src_q_ptrtype(field_kernel_handle),pointer::kernelreal(c_double),pointer::src_q(:)status=get_kernel(handle,kernel)if(status/=beach_kernel_ok)return if(.not.kernel%built)thenstatus=beach_kernel_not_readyreturn end if if(nsrc/=kernel%plan%nsrc.or..not.c_associated(src_q_ptr))thenstatus=beach_kernel_invalid_argumentreturn end if call c_f_pointer(src_q_ptr,src_q,[int(nsrc)])call update_state(kernel%plan,kernel%state,real(src_q,dp))kernel%charged=.true.status=beach_kernel_okend function beach_kernel_update_charges