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.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
subroutine assign_json_file_to_string(str,me)implicit nonecharacter(kind=CK,len=:),allocatable,intent(out)::strclass(json_file),intent(in)::metype(json_core)::core_copy!! a copy of `core` from `me`if(me%core%failed().or..not.associated(me%p))thenstr=CK_''else! This is sort of a hack. Since `me` has to have `intent(in)`! for the assignment to work, we need to make a copy of `me%core`! so we can call the low level routine (since it needs it to! be `intent(inout)`) because it's possible for this! function to raise an exception.core_copy=me%core! copy the parser settingscall core_copy%serialize(me%p,str)if(me%core%failed())str=CK_''end if end subroutine assign_json_file_to_string