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.
subroutine bindings_c2f_string(c_string,f_string)implicit none! Argumentscharacter(len=1,kind=c_char),intent(in)::c_string(*)character(len=:),allocatable,intent(out)::f_string! Internalsinteger::icharacter(len=STRMAX)::tmp_stringi=1tmp_string=''do while(c_string(i)/=c_null_char.and.i<=STRMAX)tmp_string(i:i)=c_string(i)i=i+1end do if(i>1)thenf_string=trim(tmp_string)elsef_string=""end if return end subroutine bindings_c2f_string