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 sf_insert_celement_coo(sparse,value,i,j)type(sf_sparse_cmatrix_coo),intent(inout)::sparsecomplex(8),intent(in)::valueinteger,intent(in)::i,jinteger::klogical::present!#ifdef _DEBUGwrite(*,"(A,2I8)")"DEBUG sf_insert_celement_coo: insert element in sparse @",i,j#endif!present=.false.do k=1,sparse%Size!Find position if presentif((i==sparse%rows(k)).and.(j==sparse%cols(k)))thenpresent=.true.exit end if end do!if(present)then! Add if presentsparse%vals(k)=sparse%vals(k)+value!else call add_to(sparse%rows,i)call add_to(sparse%cols,j)call add_to(sparse%vals,value)sparse%Size=sparse%Size+1endif!if(sparse%Size>sparse%Ncol*sparse%Nrow)stop"sf_insert_celement_coo ERROR: sparse%Size > sparse%Ncol*sparse%Nrow"!end subroutine sf_insert_celement_coo