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 get_fortran_string(s,nchars)result(f)character(kind=C_CHAR,len=1),intent(in)::s(*)integer,intent(in)::ncharscharacter(len=nchars)::fif(storage_size(f).eq.storage_size(s)*nchars)thenf=transfer(s(1:nchars),f)else stop"can't transfer C_CHAR array to fortran character, do explicit copy!"end if end function get_fortran_string