pure subroutine res(t, c, cprime, cj, delta, ires, rpar, ipar)
!! This routine computes the residuals vector, using subroutine [[f]] for the right-hand
!! sides.
use web_par, only: ns, np, mx, my, mxns
real(rk), intent(in) :: t
real(rk), intent(in) :: c(*)
real(rk), intent(in) :: cprime(*)
real(rk), intent(in) :: cj
real(rk), intent(out) :: delta(*)
integer, intent(in) :: ires
real(rk), intent(inout) :: rpar(*)
integer, intent(in) :: ipar(*)
integer :: i, ic0, ici, iyoff, jx, jy
call f(t, c, delta, rpar)
do jy = 1, my
iyoff = mxns*(jy - 1)
do jx = 1, mx
ic0 = iyoff + ns*(jx - 1)
do i = 1, ns
ici = ic0 + i
if (i > np) then
delta(ici) = -delta(ici)
else
delta(ici) = cprime(ici) - delta(ici)
end if
end do
end do
end do
end subroutine res