Module Usage
Users are required to incorporate a “use” statement near the top of their program for the IMSL routine being called when writing new code that uses this library. However, legacy code which calls routines in the previous version of the library without the presence of a “use” statement will continue to work as before. The example programs throughout this manual demonstrate the syntax for including use statements in your program. In addition to the examples programs, common cases of when and how to employ a use statement are described below.
Users writing new programs calling the generic interface to IMSL routines must include a use statement near the top of any routine that calls the IMSL routines. The naming convention for modules joins the suffix “
_int” to the generic routine name. For example, if a new program is written calling the IMSL routines
LFTRG and
LFSRG, then the following use statements should be inserted near the top of the program:
USE LFTRG_INT
USE LFSRG_INT
In addition to providing interface modules for each routine individually, we also provide a module named “imsl_libraries”, which contains the generic interfaces for all routines in the library. For programs that call several different IMSL routines using generic interfaces, it can be simpler to insert the line
USE IMSL_LIBRARIES
rather than list use statements for every IMSL subroutine called.
Users wishing to update existing programs to call other routines from this library should incorporate a use statement for the new routine being called. (Here, the term “new routine” implies any routine in the library, only “new” to the user’s program.) For example, if a call to the generic interface for the routine
LSARG is added to an existing program, then
USE LSARG_INT
should be inserted near the top of your program.
Users wishing to update existing programs to call the new generic versions of the routines must change their calls to the existing routines to match the new calling sequences and use either the routine specific interface modules or the all encompassing “
imsl_libraries” module.
Code which employed the “
use numerical_libraries” statement from the previous version of the library will continue to work properly with this version of the library.