pure subroutine fcn( &
n, m, q, np, ldifx, beta, xplusd, ifixb, ifixx, ideval, f, fjacb, fjacd, istop, data)
!! User-supplied subroutine for evaluating the model.
integer, intent(in) :: n, m, q, np, ldifx, ideval, ifixb(np), ifixx(ldifx, m)
real(dp), intent(in) :: beta(np), xplusd(n, m)
real(dp), intent(out) :: f(n, q), fjacb(n, np, q), fjacd(n, m, q)
integer, intent(out) :: istop
type(c_ptr), intent(in), value :: data
! Local variables
integer :: i
! Check for unacceptable values for this problem
if (beta(1) > zero) then
istop = 1
return
else
istop = 0
end if
! Compute predicted values
if (mod(ideval, 10) > 0) then
do i = 1, ubound(f, 2)
f(:, i) = beta(3)*(xplusd(:, 1) - beta(1))**2 + &
2*beta(4)*(xplusd(:, 1) - beta(1))*(xplusd(:, 2) - beta(2)) + &
beta(5)*(xplusd(:, 2) - beta(2))**2 - one
end do
end if
end subroutine fcn