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 zmatmul_csr_csr(A,B)return(AxB)type(sparse_zmatrix_csr),intent(in)::A,Btype(sparse_zmatrix_csr)::AxBinteger::Na(2),Nb(2)integer::irow,j,jcol,k,kcolcomplex(8)::aval,bvalNa=A%shape();Nb=B%shape()if(Na(2)/=Nb(1))stop"Matrix not matching dimension in zmatmul_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 zmatmul_csr_csr