|
|
1.1 root 1: .TI F77/IMSL_LIB "Sep. 4, 1985"
2: IMSL Library of Mathematical and Statistical Procedures
3:
4: The IMSL library, which includes over 500 Fortran callable subroutines,
5: is available for VAX UNIX. There are both single and double precision
6: versions; check with your system administrator to see if your system
7: has the IMSL library and how to access it. The rest of this write-up
8: assumes you have the double precision version, and it is
9: accessed as '-limsld'.
10:
11: While IMSL includes mainly mathematical and statistical routines,
12: chapter U of the library includes utility routines for printing histograms,
13: for plotting functions, and for printing arrays. To use the double
14: precision version, specify '-limsld' to f77:
15:
16: f77 prog.f -limsld
17:
18: The IMSL manual includes an introduction, table of contents and
19: permuted index at the beginning of volume 1. New users of IMSL should
20: read sections 5.2 through 5.6.1 (about 5 pages) of the introduction
21: before using the library. If IMSL does not contain an appropriate
22: subroutine for what you are doing, see "help f77 libraries" for information
23: on other libraries.
24:
25: Most of the library is written using double precision variables. To
26: see if a specific routine expects single or double precision arguments,
27: look in the manual for the 'PRECISION/HARDWARE' information. If it
28: specifies 'DOUBLE/H32' or 'SINGLE AND DOUBLE/H32' then floating point
29: arguments must be double precision, if it specifies 'SINGLE/H32' or
30: \&'SINGLE/ALL' then floating point arguments must be single precision.
31:
32: The manual is written as if all the subroutines expect single precision
33: arguments. Generally, for the double precision version of the library,
34: you will have to supply double precision arguments. If you have
35: written your program in single precision, see "help f77 to_double" to
36: see what changes are needed to use double precision.
37:
38: There are five common errors in using IMSL routines:
39: .IP "1."
40: Using single precision when double precision is required.
41: .IP "2."
42: Not checking the error flag.
43: Most routines have an error flag that
44: IMSL sets to an error value when something goes wrong; it is your
45: responsibility to check it.
46: .IP "3."
47: Omitting arguments. IMSL routines often have many
48: arguments that are required even if you don't use the result.
49: .IP "4."
50: Not dimensioning arguments. Especially make sure work areas are
51: appropriately dimensioned.
52: .IP "5."
53: Supplying incorrect 'row dimension' of matrices. Many IMSL routines
54: have a calling sequence of the form:
55:
56: call sub( a, nr, nc, ia, ... )
57:
58: where 'a' is a matrix, 'nr' is it's row order, 'nc' is it's column order,
59: and 'ia' is it's row dimension. The orders 'nr' and 'nc' are the number
60: of rows and columns being used, while 'ia' is the row dimension of the
61: matrix exactly as specified in the dimension statement in the calling
62: program. The row order and row dimension are often different and must
63: be specified correctly.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.