Conjugate_Gradient contains a procedure for minimizing the value of a multidimensional function using a conjugate gradient algorithm. This code is a hotch-potch derived from a number of sources.
Module | Variables |
---|---|
DEFINITIONS | DP |
IO_UNITS | OUTPUT |
None.
There is a single public subroutine in this module.
Subroutine | Purpose |
---|---|
CONJUGATE_GRADIENT_MINIMIZE | Perform a conjugate gradient minimization. |
Argument | Type | Intent | Optional | Purpose |
---|---|---|---|---|
FCALC | Function | N/A | No | A user-supplied function. |
X | Real(:) | InOut | No | The function variables. |
STATUS | Integer | Out | Yes | An optional status flag. |
PRINT_FREQUENCY | Integer | In | Yes | A print frequency. |
STEP_NUMBER | Integer | In | Yes | The maximum number of minimization steps. |
GRADIENT_TOLERANCE | Real | In | Yes | The gradient tolerance convergence criterion. |
STEP_SIZE | Real | In | Yes | An estimated step-size for the first step. |
Argument | Type | Intent | Optional | Purpose |
---|---|---|---|---|
X | Real(:) | In | No | The point at the which the function is to be evaluated. |
F | Real | Out | No | The function value. |
G | Real(:) | Out | No | The first derivative vector. |
The subroutine in this module needs some cleaning up. Otherwise, stable.