Optional Subprogram Arguments
IMSL Fortran Numerical Library routines have
required arguments and may have
optional arguments. All arguments are documented for each routine. For example, consider the routine
lin_sol_gen that solves the linear algebraic matrix equation
Ax =
b. The required arguments are three rank-2 Fortran 90 arrays:
A,
b, and
x. The input data for the problem are the
A and
b arrays; the solution output is the
x array. Often there are other arguments for this linear solver that are closely connected with the computation but are not as compelling as the primary problem. The inverse matrix
A-1 may be needed as part of a larger application. To output this parameter, use the optional argument given by the “
ainv=” keyword. The rank-2 output array argument used on the right-hand side of the equal sign contains the inverse matrix. See
Example 2 of LIN_SOL_GEN in
Chapter 1, “Linear Systems” for an example of computing the inverse matrix.
For compatibility with previous versions of the IMSL Libraries, the NUMERICAL_LIBRARIES interface module includes backwards-compatible positional argument interfaces to all routines that existed in the Fortran 77 version of the Library. Note that it is not necessary to include “use” statements when calling these routines by themselves. Existing programs that called these routines will continue to work in the same manner as before.
Some of the primary routines have arguments “epack=” and “iopt=”. As noted the “epack=” argument is of derived type s_error or d_error. The prefix “s_” or “d_” is chosen depending on the precision of the data type for that routine. These optional arguments are part of the interface to certain routines, and are used to modify internal algorithm choices or other parameters.