| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(conmax_solver), | intent(inout) | :: | me | |||
| integer, | intent(in) | :: | Nparm | |||
| integer, | intent(in) | :: | Numgr | |||
| real(kind=wp), | intent(in), | dimension(Iptb, Indm) | :: | Pttbl | ||
| integer, | intent(in) | :: | Iptb | |||
| integer, | intent(in) | :: | Indm | |||
| real(kind=wp), | intent(in), | dimension(Nparm) | :: | Param | ||
| integer, | intent(in) | :: | Ipt | |||
| integer, | intent(in) | :: | Indfn | |||
| integer, | intent(out), | dimension(Numgr) | :: | Icntyp | ||
| real(kind=wp), | intent(out), | dimension(Numgr,Nparm+1) | :: | Confun |
Interface for the fnset function.
The first eight variables in the calling sequence for fnset are for input to fnset, with the first five variables being exactly as the user set them in the driver program. if the ten thousands digit of ioptn was set to 0, fnset should be written to place the appropriate values in icntyp and confun using the parameters in param, as follows:
icntyp(ipt) = the type of the ipt(th) constraint (i.e. 2, 1, -1, or -2), or the user can set icntyp(ipt)=0 as a signal to ignore constraint ipt.
confun(ipt,1) = the appropriate value as discussed above. (this can be left undefined if icntyp(ipt)=0.)
if indfn=1 (which is the only possibility other than indfn=0) then in addition to the above, for j=1,...,nparm, fnset should compute
confun(ipt,j+1) = the value of the partial derivative with respect to param(j) of the function whose value was computed in confun(ipt,1) (unless icntyp(ipt)=0, in which case these values need not be computed).