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
subroutine load_materials(cfgs)class(input_t),intent(in)::cfgs(:)character(20)::names(6)=['copper','nb3sn','nbti','stainless_steel','glass_kapton_glass','glass_epoxy']integer::itype(c_funptr)::init_material_ext_ptrdo i=1,size(lib_handles)init_material_ext_ptr=GetProcAddress(lib_handles(i),'init_material_ext'//c_null_char)if(c_associated(init_material_ext_ptr))then call c_f_procpointer(init_material_ext_ptr,init_material_ext)exit endif enddo allocate(materials(size(cfgs)+size(names)))do i=1,size(cfgs)call set_material(materials(i),cfgs(i),'')enddo do i=1,size(names)call set_material(materials(size(cfgs)+i),empty_cfg(),names(i))enddo end subroutine load_materials