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
large graphs.
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
large graphs.
Source Code
function get_variable_attribute(this,var_name,attr_name,rc)result(units)class(FileMetadataUtils),intent(inout)::thischaracter(len=*),intent(in)::var_namecharacter(len=*),intent(in)::attr_nameinteger,optional,intent(out)::rccharacter(:),allocatable::fnamecharacter(len=:),pointer::unitstype(Attribute),pointer::attr=>null()class(Variable),pointer::var=>null()class(*),pointer::vunitslogical::isPresentinteger::statusfname=this%get_file_name(_RC)var=>this%get_variable(var_name,rc=status)_VERIFY(status)isPresent=var%is_attribute_present(trim(attr_name))if(isPresent)thenattr=>var%get_attribute(trim(attr_name))vunits=>attr%get_value()select type(vunits)type is(character(*))units=>vunitsclass default_FAIL('units must be string for '//var_name//' in '//fname)end select elseunits=>null()end if_RETURN(_SUCCESS)end function get_variable_attribute