Lines Matching refs:Cmat

2430   subroutine hecmw_localmat_add(Amat, Bmat, Cmat)  argument
2434 type (hecmwST_local_matrix), intent(out) :: Cmat local
2442 Cmat%ndof = ndof
2443 Cmat%nr = nr
2444 Cmat%nc = nc
2445 Cmat%nnz = 0
2446 allocate(Cmat%index(0:nr))
2447 Cmat%index(0) = 0
2470 Cmat%index(i) = Cmat%index(i-1) + icnt
2472 Cmat%nnz = Cmat%index(nr)
2473 allocate(Cmat%item(Cmat%nnz))
2474 allocate(Cmat%A(ndof2*Cmat%nnz))
2476 i0 = Cmat%index(i-1)
2485 Cmat%item(idx) = jcol
2486 Cmat%A(ndof2*(idx-1)+1:ndof2*idx) = Amat%A(ndof2*(j-1)+1:ndof2*j)
2495 if (Cmat%item(idx) == jcol) then
2496 Cmat%A(ndof2*(idx-1)+1:ndof2*idx) = &
2497 Cmat%A(ndof2*(idx-1)+1:ndof2*idx) + Bmat%A(ndof2*(j-1)+1:ndof2*j)
2503 Cmat%item(idx) = jcol
2504 Cmat%A(ndof2*(idx-1)+1:ndof2*idx) = Bmat%A(ndof2*(j-1)+1:ndof2*j)
2506 if (i0 + icnt /= Cmat%index(i)) stop 'ERROR: merge localmat'
2508 call sort_and_uniq_rows(Cmat)
3220 subroutine multiply_mat_mat(Amat, Bmat, Cmat) argument
3224 type (hecmwST_local_matrix), intent(out) :: Cmat local
3241 Cmat%ndof = ndof
3242 Cmat%nr = nr
3243 Cmat%nc = nc
3244 allocate(Cmat%index(0:nr))
3245 Cmat%index(0) = 0
3268 Cmat%index(i) = icnt
3274 Cmat%index(i) = Cmat%index(i-1) + Cmat%index(i)
3276 nnz = Cmat%index(nr)
3277 Cmat%nnz = nnz
3282 allocate(Cmat%item(nnz))
3283 allocate(Cmat%A(ndof2 * nnz))
3284 Cmat%A(:) = 0.0d0
3291 l0 = Cmat%index(i-1)
3305 if (Cmat%item(l0+l) == kk) then
3313 Cmat%item(ll) = kk
3315 Cp => Cmat%A(ndof2*(ll-1)+1:ndof2*ll)
3320 if (l0+icnt /= Cmat%index(i)) stop 'ERROR: multiply_mat_mat: unknown error'
3327 call sort_and_uniq_rows(Cmat)