Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
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.
Source Code
pure function e_charge_repulsion(xyz,q)result(enuc)use precision,only:dpimplicit nonereal(kind=dp)::enucreal(kind=dp),intent(in)::xyz(:,:),q(:)real(kind=dp),parameter::disttol=1.0d-10integer::i,j,natreal(kind=dp)::rrnat=min(ubound(q,1),ubound(xyz,2))enuc=0.0d0do i=2,natdo j=1,i-1rr=sum((xyz(:,i)-xyz(:,j))**2)if(rr>=disttol)enuc=enuc+q(i)*q(j)/sqrt(rr)end do end do end function e_charge_repulsion