"Medium-call" wrapper for the odr
routine including most commonly used optional arguments.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
procedure(fcn_tc) | :: | fcn |
User-supplied subroutine for evaluating the model. |
|||
integer(kind=c_int), | intent(in) | :: | n |
Number of observations. |
||
integer(kind=c_int), | intent(in) | :: | m |
Number of columns of data in the independent variable. |
||
integer(kind=c_int), | intent(in) | :: | np |
Number of function parameters. |
||
integer(kind=c_int), | intent(in) | :: | nq |
Number of responses per observation. |
||
real(kind=c_double), | intent(inout) | :: | beta(np) |
Function parameters. |
||
real(kind=c_double), | intent(in) | :: | y(n,nq) |
Dependent variable. Unused when the model is implicit. |
||
real(kind=c_double), | intent(in) | :: | x(n,m) |
Explanatory variable. |
||
real(kind=c_double), | intent(in) | :: | we(ldwe,ld2we,nq) |
|
||
integer(kind=c_int), | intent(in) | :: | ldwe |
Leading dimension of array |
||
integer(kind=c_int), | intent(in) | :: | ld2we |
Second dimension of array |
||
real(kind=c_double), | intent(in) | :: | wd(ldwd,ld2wd,m) |
|
||
integer(kind=c_int), | intent(in) | :: | ldwd |
Leading dimension of array |
||
integer(kind=c_int), | intent(in) | :: | ld2wd |
Second dimension of array |
||
integer(kind=c_int), | intent(in) | :: | ifixb(np) |
Values designating whether the elements of |
||
integer(kind=c_int), | intent(in) | :: | ifixx(ldifx,m) |
Values designating whether the elements of |
||
integer(kind=c_int), | intent(in) | :: | ldifx |
Leading dimension of array |
||
real(kind=c_double), | intent(inout), | optional | :: | delta(n,m) |
Error in the |
|
real(kind=c_double), | intent(in), | optional | :: | lower(np) |
Lower bound on |
|
real(kind=c_double), | intent(in), | optional | :: | upper(np) |
Upper bound on |
|
integer(kind=c_int), | intent(in), | optional | :: | job |
Variable controlling initialization and computational method. |
|
integer(kind=c_int), | intent(in), | optional | :: | iprint |
Print control variable. |
|
integer(kind=c_int), | intent(in), | optional | :: | lunerr |
Logical unit number for error messages. Available options are:
0 => no output.
6 => output to standard error.
other => output to logical unit number |
|
integer(kind=c_int), | intent(in), | optional | :: | lunrpt |
Logical unit number for computation reports. Available options are:
0 => no output.
6 => output to standard error.
other => output to logical unit number |
|
integer(kind=c_int), | intent(out), | optional | :: | info |
Logical unit number for computation reports. |
subroutine odr_medium_c( & fcn, & n, m, np, nq, & beta, y, x, & we, ldwe, ld2we, & wd, ldwd, ld2wd, & ifixb, ifixx, ldifx, & delta, & lower, upper, & job, iprint, lunerr, lunrpt, info) bind(C) !! "Medium-call" wrapper for the `odr` routine including most commonly used optional arguments. procedure(fcn_tc) :: fcn !! User-supplied subroutine for evaluating the model. integer(c_int), intent(in) :: n !! Number of observations. integer(c_int), intent(in) :: m !! Number of columns of data in the independent variable. integer(c_int), intent(in) :: np !! Number of function parameters. integer(c_int), intent(in) :: nq !! Number of responses per observation. real(c_double), intent(inout) :: beta(np) !! Function parameters. real(c_double), intent(in) :: y(n, nq) !! Dependent variable. Unused when the model is implicit. real(c_double), intent(in) :: x(n, m) !! Explanatory variable. real(c_double), intent(in) :: we(ldwe, ld2we, nq) !! `epsilon` weights. integer(c_int), intent(in) :: ldwe !! Leading dimension of array `we`, `ldwe ∈ {1, n}`. integer(c_int), intent(in) :: ld2we !! Second dimension of array `we`, `ld2we ∈ {1, n}`. real(c_double), intent(in) :: wd(ldwd, ld2wd, m) !! `delta` weights. integer(c_int), intent(in) :: ldwd !! Leading dimension of array `wd`, `ldwd ∈ {1, n}`. integer(c_int), intent(in) :: ld2wd !! Second dimension of array `wd`, `ld2wd ∈ {1, m}`. integer(c_int), intent(in) :: ifixb(np) !! Values designating whether the elements of `beta` are fixed at their input values or not. integer(c_int), intent(in) :: ifixx(ldifx, m) !! Values designating whether the elements of `x` are fixed at their input values or not. integer(c_int), intent(in) :: ldifx !! Leading dimension of array `ifixx`, `ldifx ∈ {1, n}`. real(c_double), intent(inout), optional :: delta(n, m) !! Error in the `x` data. Initial guess on input and estimated value on output. real(c_double), intent(in), optional :: lower(np) !! Lower bound on `beta`. real(c_double), intent(in), optional :: upper(np) !! Upper bound on `beta`. integer(c_int), intent(in), optional :: job !! Variable controlling initialization and computational method. integer(c_int), intent(in), optional :: iprint !! Print control variable. integer(c_int), intent(in), optional :: lunerr !! Logical unit number for error messages. Available options are: !! 0 => no output. !! 6 => output to standard error. !! other => output to logical unit number `lunerr`. integer(c_int), intent(in), optional :: lunrpt !! Logical unit number for computation reports. Available options are: !! 0 => no output. !! 6 => output to standard error. !! other => output to logical unit number `lunrpt`. integer(c_int), intent(out), optional :: info !! Logical unit number for computation reports. call odr(fcn, n, m, np, nq, beta, y, x, & we=we, wd=wd, & ifixb=ifixb, ifixx=ifixx, & delta=delta, & lower=lower, upper=upper, & job=job, & iprint=iprint, lunerr=lunerr, lunrpt=lunrpt, & info=info) end subroutine odr_medium_c