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.
PURE FUNCTION euclidean_inner_product(u,v)RESULT(inner_product)IMPLICIT NONEDOUBLE PRECISION,DIMENSION(3),INTENT(IN)::uDOUBLE PRECISION,DIMENSION(3),INTENT(IN)::vDOUBLE PRECISION::inner_productinner_product=u(1)*v(1)+u(2)*v(2)+u(3)*v(3)END FUNCTION euclidean_inner_product