Using Library Subprograms

The documentation for the routines uses the generic name and omits the prefix, and hence the entire suite of routines for that subject is documented under the generic name.

Examples that appear in the documentation also use the generic name. To further illustrate this principle, note the lin_sol_gen documentation (see Chapter 1, Linear Systems), for solving general systems of linear algebraic equa­tions. A description is provided for just one data type. There are four documented routines in this subject area: s_lin_sol_gen, d_lin_sol_gen, c_lin_sol_gen, and z_lin_sol_gen.

These routines constitute single-precision, double-precision, complex, and double-complex precision versions of the code.

The Fortran 90 compiler identifies the appropriate routine. Use of a module is required with the routines. The naming convention for modules joins the suffix _int to the generic routine name. Thus, the line “use lin_sol_gen_int is inserted near the top of any routine that calls the subprogram lin_sol_gen”. More inclusive modules are also available, such as
imsl_libraries and numerical libraries. To avoid name conflicts, Fortran 90 permits re-labeling names defined in modules so they do not conflict with names of routines or variables in the user's program.  The user can also restrict access to names defined in IMSL Library modules by use of the “: ONLY, <list of names>” qualifier.

When dealing with a complex matrix, all references to the transpose of a matrix, , are replaced by the adjoint matrix

where the overstrike denotes complex conjugation.  IMSL Fortran Numerical  Library linear algebra software uses this convention to conserve the utility of generic documentation for that code subject. All references to orthogonal matrices are to be replaced by their complex counterparts, unitary matrices. Thus, an n ´ n orthogonal matrix Q satis­fies the condition. An n ´ n unitary matrix V satisfies the analogous condition for com­plex matrices, .


Visual Numerics, Inc.
Visual Numerics - Developers of IMSL and PV-WAVE
http://www.vni.com/
PHONE: 713.784.3131
FAX:713.781.9260