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
subroutine acquire_file_lock(path,lock_fd,status)character(len=*),intent(in)::pathinteger,intent(out)::lock_fd,statuscharacter(kind=c_char),allocatable::c_path(:)integer(c_int)::fd,close_statuslock_fd=-1if(len_trim(path)==0)thenstatus=filesystem_empty_pathreturn end if call to_c_string(trim(path),c_path)fd=c_open(c_path,open_write_create,file_mode)if(fd<0_c_int)thenstatus=filesystem_os_errorreturn end if if(c_flock(fd,lock_exclusive)/=0_c_int)thenstatus=filesystem_os_errorclose_status=c_close(fd)return end iflock_fd=int(fd)status=filesystem_successend subroutine acquire_file_lock