Over the years my colleagues and I have written a number of useful programs that are in wide use in research institutions. They are all written in Fortran, come with extensive documentation. Several packages are briefly described below, with links to online documentation. On this page you will find information about plotxy (in the next section), and also color, magmap, dplus, psd, and contour.

Although matlab effortlessly generates simple graphics during the development stages of a project, production of publication-quality figures is much more tiresome. Control of figure and text size, arrangement on the page, annotation is handled in matlab by a confusing combination of pull-down menus, and function calls, some requiring handle graphics, others not, and documentation is diffuse. In contrast, plotxy offers full control within a uniform framework, documented in one place.

The example above is a figure drawn with plotxy (mapped to jpeg and somewhat degraded) by Andrew Barbour at IGPP, UCSD. Note the different fonts, line weights, the use of filled space, and the graceful numerical axis annotation. The plotxy script for a graph such as this is fairly complex.

The user manual in PDF form is available on this link: plotxydoc;
for quick reference see
quickplotxy.
The status command will report the date of the version you are running.
The Fortran-77 source code is available here.
A script and the data files for the examples given in the
PDF file can be found here.

Top.

For drawing contour maps over the surface of the earth, an automatic mapping facility is provided to Hammer-Aitoff equal-area projection from values on a standard latitude-longitude grid; see the magnetic field maps which were generated by the script at this link. The jpeg conversion of the original PostScript file has muted the colors in this plot.

Matlab's color contouring (contourc) is reasonably good, unlike its plain contouring facilities, which are amateurish. But, as usual, axis control, graph placement and sizing are tricky.

The user manual in PDF form is at the link:
colordoc;
for a quick reference see
quickcolor.
The Fortran-77 source code can be downloaded from
this link.

Top.

The best-fitting solutions to a finite set of admittance data is computed by the program Dplus. It is very useful to determine the smallest possible data misfit that a one-dimensional system can generate without having to perform a nonlinear search in model space, the general but uncertain procedure. Data quality control can be assessed: for example, a large misfit at one frequency can be a clue to the presence of an erroneous data point, or an unrealistic error estimate. Data quality can also be checked in admittances for TE and TM modes in 2-D conductivity structures, although then compatibility with a 1-D profile under each station is only approximate.

Dplus accepts data in a variety of formats and units, and can also
generate a plot file for plotxy showing the
model response and the optimal profile in D^{+}.
Documentation in PDF format is at the link:
dplusdoc;
Fortran-77 source code is here
and a Matlab M-file is here.
Please e-mail
me if you find this program useful.

Top.

Magmap creates diskfiles containing regular two-dimensional arrays of numbers, sampling the required element to be plotted, and also provides scripts for mapping the contours of the function through the program color or contour.

Magmap also has facilities for calculating field elements for any point, on or above the Earth's surface, or within the body of the Earth. The program has available IGRF field models from 1900 to 2000, but can also read Gauss coefficients (spherical harmonics) from a diskfile. All conventional normalizations of the spherical harmonics are catered for.

The user manual in PDF form is at the link: magmapdoc;
for a quick reference see
quickmagmap.
Fortran-77 source is at this link.

Top.

Specifically, psd is based on the sine multitaper approach of Riedel and Sidorenko to spectral estimation. All spectral estimators smooth the spectrum in order to reduce variance; the S-R method applies smoothing that varies with frequency to minimize the sum of variance and bias at each point.

The user can leave all the choices to the program, or he or she can request higher resolution (with smooth) at the expense of increased variance, or apply a prewhitening FIR filter, among other options. The input data need not be evenly spaced in time - spline interpolation is provided. Graphical output (see below) is generated during the run via plotxy.

The power spectrum shown in the example was created from a time series of the water level in the Salton Sea, with a simple script, which explores the effects of several different parameter settings: in black, default settings; in red, increased resolution by a factor of two; in blue, a fixed number of tapers in each frequency band.

The user manual in PDF form is at the link: psddoc;
for quick reference see
quickpsd.
The Fortran-77 source can be found
on this link.
A slimmed-down matlab version is also available
here, but it performs only sine multitaper analysis
with a fixed set of parameters.

Top.

The example above was created with a contour script. It shows two contour maps superimposed, one with solid, the other with dashed level lines, and coastlines.

Color and contour are very similar, although
contour is somewhat more flexible in providing annotation and labels
as well as addition lines on the finished plot. The user manual in
PDF form can be found by going to the link
contourdoc;
the quick reference HTML file is at
quickcontour.
Fortran-77 source can be found
here.

Top.

f(z) = -1/(0.2 + i - [z^{2} - 1]^{1/2}) .

You can see the pole and branch cut clearly in this graph.

Other kinds of displays, such as perspective plots, or graphs of the real and imaginary parts are also provided. Simple scripts also allow the user to zoom in or out and to move around the plane to locate points of interest.

A script is provided to perform path integrals numerically in the plane, on lines input with the mouse.

A brief description of the capabilities can be found at zlabdoc; and the quick reference guide is at quickzlab. The matlab source scripts are in zlab.m.