Skip to content

odrpack 2.0.1

Choose a tag to compare

@HugoMVale HugoMVale released this 29 Jun 15:16
· 109 commits to main since this release
a3cad3d

This release includes two major changes that are not backward-compatible:

  • The signature of the model function fcn_t was updated and is now:
  subroutine fcn_t(beta, xplusd, ifixb, ifixx, ideval, f, fjacb, fjacd, istop)
  !! User-supplied subroutine for evaluating the model.
     import :: wp
     implicit none
     real(wp), intent(in) :: beta(:)
        !! Current values of parameters.
     real(wp), intent(in) :: xplusd(:, :)
        !! Current value of explanatory variable, i.e., `x + delta`. Shape: `(n, m)`.
     integer, intent(in) :: ifixb(:)
        !! Indicators for "fixing" parameters (`beta`).
     integer, intent(in) :: ifixx(:, :)
        !! Indicators for "fixing" explanatory variable (`x`). Shape: `(ldifx, m)`.
     integer, intent(in) :: ideval
        !! Indicator for selecting computation to be performed.
     real(wp), intent(out) :: f(:, :)
        !! Predicted function values. Shape: `(n, q)`.
     real(wp), intent(out) :: fjacb(:, :, :)
        !! Jacobian with respect to `beta`. Shape: `(n, np, q)`.
     real(wp), intent(out) :: fjacd(:, :, :)
        !! Jacobian with respect to errors `delta`. Shape: `(n, m, q)`.
     integer, intent(out) :: istop
        !! Stopping condition, with meaning as follows.
        !!  `0`: Current `beta` and `x + delta` were acceptable and values were computed
        !!       successfully.
        !!  `1`: Current `beta` and `x + delta` are not acceptable; 'odrpack' should select
        !!       values closer to most recently used values if possible.
        !! `-1`: Current `beta` and `x + delta` are not acceptable; 'odrpack' should stop.
  end subroutine fcn_t
  • Some argument names and location in the C-API were also slighted updated.
  • All odr array arguments must now strictly conform to the expected shapes. Previously, it was possible to provide input arrays larger than required, which were internally sliced to the correct shape. This is no longer accepted.