A dummy subroutine which does not apply a preconditioner or
calculate an analytic Jacobian. This can be passed to nitsol
for the argument jacv
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
real(kind=r8), | intent(in), | dimension(n) | :: | xcur | ||
real(kind=r8), | intent(in), | dimension(n) | :: | fcur | ||
integer, | intent(in) | :: | ijob | |||
real(kind=r8), | intent(in), | dimension(n) | :: | v | ||
real(kind=r8), | intent(out), | dimension(n) | :: | z | ||
real(kind=r8), | intent(inout), | dimension(*) | :: | rpar | ||
integer, | intent(inout), | dimension(*) | :: | ipar | ||
integer, | intent(out) | :: | itrmjv |
subroutine dummy_jacv(n, xcur, fcur, ijob, v, z, rpar, ipar, itrmjv)
!* Author: Chris MacMackin
! Date: November 2016
!
! A dummy subroutine which does not apply a preconditioner or
! calculate an analytic Jacobian. This can be passed to [[nitsol]]
! for the argument `jacv`.
!
integer, intent(in) :: n
! Dimension of the problem
real(r8), dimension(n), intent(in) :: xcur
! Array of length `n` containing the current \(x\) value
real(r8), dimension(n), intent(in) :: fcur
! Array of length `n` containing the current \(f(x)\) value
integer, intent(in) :: ijob
! Integer flag indicating which product is desired. 0
! indicates \(z = J\vec{v}\). 1 indicates \(z = P^{-1}\vec{v}\).
real(r8), dimension(n), intent(in) :: v
! An array of length `n` to be multiplied
real(r8), dimension(n), intent(out) :: z
! An array of length n containing the desired product on
! output.
real(r8), dimension(*), intent(inout) :: rpar
! Parameter/work array
integer, dimension(*), intent(inout) :: ipar
! Parameter/work array
integer, intent(out) :: itrmjv
! Termination flag. 0 indcates normal termination, 1
! indicatesfailure to prodce \(J\vec{v}\), and 2 indicates
! failure to produce \(P^{-1}\vec{v}\)
end subroutine dummy_jacv