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_integer_I1P(lhs,rhs)!< Assignment operator from integer input.!<!<```fortran!< use penf!< type(string) :: astring!< logical :: test_passed(1)!< astring = 127_I1P!< test_passed(1) = astring%to_number(kind=1_I1P)==127_I1P!< print '(L1)', all(test_passed)!<```!=> T <<<class(string),intent(inout)::lhs!< Left hand side.integer(I1P),intent(in)::rhs!< Right hand side.lhs%raw=trim(str(rhs))endsubroutine string_assign_integer_I1P