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_level_name(this,rc)result(lev_name)class(FileMetadataUtils),target,intent(inout)::thisinteger,optional,intent(out)::rccharacter(len=:),pointer::unitscharacter(len=:),allocatable::lev_nametype(CoordinateVariable),pointer::vartype(StringVariableMap),pointer::varstype(StringVariableMapIterator)::var_itercharacter(len=:),pointer::var_namevars=>this%get_variables()var_iter=vars%begin()do while(var_iter/=vars%end())var_name=>var_iter%key()var=>this%get_coordinate_variable(trim(var_name))if(associated(var))then if(index(var_name,'lev').ne.0.or.index(var_name,'height').ne.0)thenlev_name=var_name_RETURN(_SUCCESS)else if(var%is_attribute_present('units'))thenunits=>this%get_variable_attribute(var_name,'units')if(trim(units).eq.'hPa'.or.trim(units).eq.'sigma_level'.or.&trim(units).eq.'mb'.or.trim(units).eq.'millibar')thenlev_name=var_name_RETURN(_SUCCESS)end if end if end if end if call var_iter%next()enddolev_name=''_RETURN(_SUCCESS)end function get_level_name