Nodes of different colours represent the following:
Module Graph
Solid arrows point from a parent (sub)module to the submodule which is
descended from it. Dashed arrows point from a module being used to the
module using it.
Type Graph
Solid arrows point from one derived type to another which extends
(inherits from) it. Dashed arrows point from a derived type to another
type containing it as a components, with a label listing the name(s) of
said component(s).
Call Graph
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.
Variables
Type
Visibility
Attributes
Name
Initial
integer,
public
::
var_type
character(kind=CK,len=:),
public,
allocatable
::
str
logical,
public
::
found
Source Code
subroutine rename(p,finished)!! change all "name" variable values to "Fred"implicit none type(json_value),pointer,intent(in)::plogical,intent(out)::finishedinteger::var_typecharacter(kind=CK,len=:),allocatable::strlogical::found!get info about this variable:call json_info(p,var_type=var_type,name=str)!it must be a string named "name":if(var_type==json_string.and.str=='name')then call json_get(p,'@',str)! get original namecall json_update(p,'@','Fred',found)!change itwrite(error_unit,'(A)')str//' name changed'icount=icount+1end if!cleanup:if(allocated(str))deallocate(str)!always false, since we want to traverse all nodes:finished=.false.end subroutine rename