NAG Library Routine Document

1Purpose

e05jcf may be used to supply optional parameters to e05jbf from an external file. The initialization routine e05jaf must have been called before calling e05jcf.

2Specification

Fortran Interface
 Subroutine e05jcf ( comm,
 Integer, Intent (In) :: iopts, lcomm Integer, Intent (Inout) :: ifail Real (Kind=nag_wp), Intent (Inout) :: comm(lcomm)
#include nagmk26.h
 void e05jcf_ (const Integer *iopts, double comm[], const Integer *lcomm, Integer *ifail)

3Description

e05jcf may be used to supply values for optional parameters to e05jbf. e05jcf reads an external file and each line of the file defines a single optional parameter. It is only necessary to supply values for those arguments whose values are to be different from their default values.
Each optional parameter is defined by a single character string, of up to $72$ characters, consisting of one or more items. The items associated with a given optional parameter must be separated by spaces, or equals signs $\left[=\right]$. Alphabetic characters may be upper or lower case. The string
`Static Limit = 100`
is an example of a string used to set an optional parameter. For each optional parameter the string contains one or more of the following items:
 – a mandatory keyword; – a phrase that qualifies the keyword; – a number that specifies an integer or real value. Such numbers may be up to $40$ contiguous characters.
Blank strings and comments are ignored. A comment begins with an asterisk (*) and all subsequent characters in the string are regarded as part of the comment.
The implied data type (character, integer or real) of each value to set must match that expected by the corresponding optional parameter.
The file containing the optional parameters must start with Begin and must finish with End. An example of a valid options file is:
```Begin * Example options file
Static Limit = 500
End```
Optional parameter settings are preserved following a call to e05jbf and so the keyword Defaults is provided to allow you to reset all the optional parameters to their default values before a subsequent call to e05jbf.
A complete list of optional parameters, their symbolic names and default values is given in Section 12 in e05jbf.

None.

5Arguments

1:     $\mathbf{iopts}$ – IntegerInput
On entry: the unit number of the option file to be read.
Constraint: iopts is a valid unit open for reading.
2:     $\mathbf{comm}\left({\mathbf{lcomm}}\right)$ – Real (Kind=nag_wp) arrayCommunication Array
On exit: comm must not be altered between calls to any of the routines e05jbf, e05jcf, e05jdf, e05jef, e05jff, e05jgf, e05jhf, e05jjf, e05jkf and e05jlf.
3:     $\mathbf{lcomm}$ – IntegerInput
On entry: the dimension of the array comm as declared in the (sub)program from which e05jcf is called.
Constraint: ${\mathbf{lcomm}}\ge 100$.
4:     $\mathbf{ifail}$ – IntegerInput/Output
On entry: ifail must be set to $0$, $-1\text{​ or ​}1$. If you are unfamiliar with this argument you should refer to Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value $-1\text{​ or ​}1$ is recommended. If the output of error messages is undesirable, then the value $1$ is recommended. Otherwise, if you are not familiar with this argument, the recommended value is $0$. When the value $-\mathbf{1}\text{​ or ​}\mathbf{1}$ is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

6Error Indicators and Warnings

If on entry ${\mathbf{ifail}}=0$ or $-1$, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
${\mathbf{ifail}}=1$
Initialization routine e05jaf has not been called.
On entry, ${\mathbf{lcomm}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{lcomm}}\ge 100$.
${\mathbf{ifail}}=2$
At least one optional parameter from the options file could not be recognized. All optional parameters that were set from the file before this error was encountered will remain set on exit.
BEGIN found, but end-of-file found before END. All optional parameters that were set from the file before this error was encountered will remain set on exit.
End-of-file found before BEGIN.
${\mathbf{ifail}}=3$
Attempt to assign an illegal value of Local Searches ($\mathit{lcsrch}$): $\mathit{lcsrch}=〈\mathit{\text{value}}〉$.
Attempt to assign an illegal value of Repeatability ($\mathit{repeat}$): $\mathit{repeat}=〈\mathit{\text{value}}〉$.
Attempt to assign a non-positive value of Function Evaluations Limit ($\mathit{nf}$): $\mathit{nf}=〈\mathit{\text{value}}〉$.
Attempt to assign a non-positive value of Local Searches Limit ($\mathit{loclim}$): $\mathit{loclim}=〈\mathit{\text{value}}〉$.
Attempt to assign a non-positive value of Static Limit ($\mathit{stclim}$): $\mathit{stclim}=〈\mathit{\text{value}}〉$.
Attempt to assign an out-of-bounds value of Infinite Bound Size ($\mathit{infbnd}$): $\mathit{infbnd}=〈\mathit{\text{value}}〉$.
Attempt to assign too small a value of Local Searches Tolerance ($\mathit{loctol}$): $\mathit{loctol}=〈\mathit{\text{value}}〉$.
Attempt to assign too small a value of Target Objective Error ($\mathit{objerr}$): $\mathit{objerr}=〈\mathit{\text{value}}〉$.
Attempt to assign too small a value of Target Objective Safeguard ($\mathit{objsfg}$): $\mathit{objsfg}=〈\mathit{\text{value}}〉$.
${\mathbf{ifail}}=5$
One of the numeric values to be set could not be parsed. Check that all such strings specify valid integer or real values.
${\mathbf{ifail}}=-99$
See Section 3.9 in How to Use the NAG Library and its Documentation for further information.
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
See Section 3.8 in How to Use the NAG Library and its Documentation for further information.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.
See Section 3.7 in How to Use the NAG Library and its Documentation for further information.

Not applicable.

8Parallelism and Performance

e05jcf is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the Users' Note for your implementation for any additional implementation-specific information.

e05jdf, e05jef, e05jff or e05jgf may also be used to supply optional parameters to e05jbf.

10Example

This example finds the global minimum of the ‘peaks’ function in two dimensions
 $Fx,y = 3 1-x 2 exp - x 2 - y+1 2 -10 x 5 - x 3 - y 5 exp - x 2 - y 2 - 1 3 exp - x+1 2 - y 2$
on the box $\left[-3,3\right]×\left[-3,3\right]$.
The function $F$ has several local minima and one global minimum in the given box. The global minimum is approximately located at $\left(0.23,-1.63\right)$, where the function value is approximately $-6.55$.
By specifying an initialization list via list, numpts and initpt we can start e05jbf looking close to one of the local minima and check that it really does move away from that point to one of the global minima.
More precisely, we choose $\left(-1,0\right)$ as our initial point (see Section 10.3), and let the initialization list be
 $-3 -1 3 -3 0 3 .$
This example solves the optimization problem using some of the optional parameters described in Section 12 in e05jbf.

10.1Program Text

Program Text (e05jcfe.f90)

10.2Program Data

Program Options (e05jcfe.opt)

Program Data (e05jcfe.d)

10.3Program Results

Program Results (e05jcfe.r)

© The Numerical Algorithms Group Ltd, Oxford, UK. 2017