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 BSJNS documentation (see Chapter 6, “Bessel Functions”, of this manual). A description is provided for just one data type. There are four documented routines in this subject area: S_BSJNS, D_BSJNS, C_BSJNS, and Z_BSJNS.
These routines constitute single‑precision, double‑precision, complex, and complex double‑precision versions of the code.
The appropriate routine is identified by the Fortran 90 compiler. 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 BSJNS_INT” is inserted near the top of any routine that calls the subprogram “BSJNS”. More inclusive modules are also available. For example, the module named imsl_libraries contains the interface modules for all routines in the library.
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 x n orthogonal matrix Q satisfies the condition . An n x n unitary matrix V satisfies the analogous condition for complex matrices, .