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_csc_csc(A,B)return(AxB)type(sparse_dmatrix_csc),intent(in)::A,Btype(sparse_dmatrix_csc)::AxBinteger::Na(2),Nb(2)integer::icol,j,jrow,k,krowreal(8)::aval,bvalNa=A%shape();Nb=B%shape()if(Na(2)/=Nb(1))stop"Matrix not matching dimension in dmatmul_csc_csc"call AxB%free()call AxB%init(Na(1),Nb(2))do icol=1,Nb(2)do j=1,B%col(icol)%Sizejrow=B%col(icol)%rows(j)bval=B%col(icol)%vals(j)do k=1,A%col(jrow)%Sizekrow=A%col(jrow)%rows(k)aval=A%col(jrow)%vals(k)AxB%insert(aval*bval,krow,icol)end do end do end do end function dmatmul_csc_csc