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 subroutine string_assign_real_R4P(lhs,rhs)!< Assignment operator from real input.!<!<```fortran!< use penf!< type(string) :: astring!< logical :: test_passed(1)!< astring = 3.021e6_R4P!< test_passed(1) = astring%to_number(kind=1._R4P)==3.021e6_R4P!< print '(L1)', all(test_passed)!<```!=> T <<<class(string),intent(inout)::lhs!< Left hand side.real(R4P),intent(in)::rhs!< Right hand side.lhs%raw=trim(str(rhs))endsubroutine string_assign_real_R4P