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 minkowski_inner_product(u,v)RESULT(inner_product)IMPLICIT NONEDOUBLE PRECISION,DIMENSION(4),INTENT(IN)::u(0:3)DOUBLE PRECISION,DIMENSION(4),INTENT(IN)::v(0:3)DOUBLE PRECISION::inner_productinner_product=-u(0)*v(0)+u(1)*v(1)+u(2)*v(2)+u(3)*v(3)END FUNCTION minkowski_inner_product