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 dmatmul_csr_csr(A,B)return(AxB)type(sparse_dmatrix_csr),intent(in)::A,Btype(sparse_dmatrix_csr)::AxBinteger::Na(2),Nb(2)integer::irow,j,jcol,k,kcolreal(8)::aval,bvalNa=A%shape();Nb=B%shape()if(Na(2)/=Nb(1))stop"Matrix not matching dimension in dmatmul_csr_csr"call AxB%free()call AxB%init(Na(1),Nb(2))do irow=1,Na(1)do j=1,A%row(irow)%Sizejcol=A%row(irow)%cols(j)aval=A%row(irow)%vals(j)do k=1,B%row(jcol)%Sizekcol=B%row(jcol)%cols(k)bval=B%row(jcol)%vals(k)AxB%insert(aval*bval,irow,kcol)end do end do end do end function dmatmul_csr_csr