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.
Source Code
function atomic_structure_clean(self)result(ok)class(atomic_structure)::selfinteger(c_int)::okok=0if(allocated(self%zn))deallocate(self%zn,stat=ok)if(ok/=0)return if(allocated(self%mass))deallocate(self%mass,stat=ok)if(ok/=0)return if(allocated(self%grad))deallocate(self%grad,stat=ok)if(ok/=0)return if(allocated(self%xyz))deallocate(self%xyz,stat=ok)end function atomic_structure_clean