**
PROGRAM SUMMARY
**
**
Title of program:
**
ZEAL
**
Catalogue identifier:
**
ADKW
**
Ref. in CPC:
**
124(2000)212
**
Distribution format: ** tar gzip file
**
Operating system: ** UNIX (HPUX 11.0,AIX 3.2.5,SunOS 5.5.1,IRIX64 6.4
**
High speed store required:
**
500K words
**
Number of bits in a word:
**
32
**
Number of lines in distributed program, including test data, etc:
**
17024
**
Programming language used: ** Fortran
**
Computer: ** HP 9000 B160L

**
Nature of physical problem:
**

ZEAL is a general purpose package for computing zeros of analytic
functions. It can be used in various physical applications. More
precisely, given a rectangular region W in the complex plane and an
analytic function f : W -> C, such that no zero of f lies on the
boundary of W, ZEAL calculates all the zeros of f that lie inside W,
together with their respective multiplicities.

**
Method of solution
**

The package ZEAL uses an integral formula to compute the total number of
zeros (counting multiplicities) of f that lie inside W. Then, by using
the same procedure, the region W is subdivided into subregions that
contain at most M zeros (again counting multiplicities), where the value
of M is specified by the user. Approximations for these zeros are
calculated via an algorithm that is based on numerical integration along
the boundaries of the subregions and generalized eigenvalue problems.
The multiplicities of the zeros are calculated by solving a Vandermonde
system. The approximations for the zeros are refined via the modified
Newton's method, which takes into account the multiplicity of a zero and
converges quadratically.

**
Restrictions on the complexity of the problem
**

The function f has to be analytic in the rectangular region W. Both f
and its derivative f' are needed. The edges of W have to be parallel to
the coordinate axes. The boundary of W is not allowed to contain zeros
of f. Since, in the sequel, W is repeatedly subdivided, the boundaries
of the obtained subregions should not contain zeros of f. The
possibility of such a situation can be minimized if W is not symmetric
with respect to the axes. ZEAL is not specifically designed to handle
clusters of zeros. However, if f has one or more clusters of zeros and
the input parameter EPS_STOP is given a proper (problem-dependent)
value, then ZEAL will compute approximations for the centres of the
clusters. The "multiplicity" of a centre is equal to the total number
of zeros that belong to the corresponding cluster.

**
Typical running time
**

The following table gives the running times (in seconds) for the test
runs of Section 4:

--------------------------------------------------- System library Code included in ZEAL --------------------------------------------------- Test run #1 0.13 (0.13) 0.18 (0.14) Test run #2 1.82 (1.04) 1.65 (1.14) Test run #3 1.55 (1.14) 1.60 (1.42) Test run #4 1.52 (1.15) 1.62 (1.35) Test run #5 0.65 (0.41) 1.62 (0.37) Test run #6 1.56 (0.56) 1.54 (0.53) ---------------------------------------------------The calculations have been done on a SUN SPARC Ultra-2 m1170. We have used the subroutine ETIME. The parenthesized running times correspond to optimized compiling. ZEAL uses a number of routines from the BLAS and LAPACK libraries. These Fortran 77 routines are distributed together with ZEAL to enable the user to compile them in case the BLAS and LAPACK libraries are not available on his/her computer system. The column labelled "System library" gives the running times in case ZEAL uses the BLAS and LAPACK libraries that are installed on our SUN computer. The column labelled "Code included in ZEAL" gives the running times in case the Fortran 77 routines distributed with ZEAL are used.