Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(pf_imex_t), | intent(inout) | :: | this | |||
class(pf_level_t), | intent(in) | :: | lev | |||
class(pf_encap_t), | intent(in) | :: | qSDC(:) | |||
class(pf_encap_t), | intent(in) | :: | fSDC(:,:) | |||
real(kind=pfdp), | intent(in) | :: | dt | |||
class(pf_encap_t), | intent(inout) | :: | fintSDC(:) |
subroutine imex_integrate(this, lev, qSDC, fSDC, dt, fintSDC)
class(pf_imex_t), intent(inout) :: this
class(pf_level_t), intent(in ) :: lev
class(pf_encap_t), intent(in ) :: qSDC(:), fSDC(:, :)
real(pfdp), intent(in ) :: dt
class(pf_encap_t), intent(inout) :: fintSDC(:)
integer :: n, m, p
do n = 1, lev%nnodes-1
call fintSDC(n)%setval(0.0_pfdp)
do m = 1, lev%nnodes
do p = 1, this%npieces
call fintSDC(n)%axpy(dt*lev%s0mat(n,m), fSDC(m,p))
end do
end do
end do
end subroutine imex_integrate