Nodes of different colours represent the following:
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
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.
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 reims_config_file()result(path)use hdf5use iso_c_bindingcharacter(:),allocatable::pathcharacter(1024)::buffinteger(c_int)::errinteger::itype(c_ptr)::ptr! C functions interface declarationinterface function c_chDir(new_path)bind(C,name="chdir")import::c_int character::new_path(*)integer(c_int)::c_chDirend function function c_getCwd(buf,ln)bind(C,name="getcwd")import::c_char,c_int,c_ptrtype(c_ptr)::c_getCwdcharacter(c_char)::buf(*)integer(c_int),value::lnend function c_getCwdend interface call h5open_f(i)ptr=c_getCwd(buff,len(buff))i=scan(buff,char(0))saved_cwd=buff(:i)if(nArgs()==0)error stop'Please provide input yaml file name in the command line'call getArg(1,buff)i=scan(buff,'/\',.true.)if(i>0)thenerr=c_chDir(buff(:i-1)//char(0))endifpath=trim(buff(i+1:))end function reims_config_file