I mostly want to thank Matt Newville. He suggested writing the
program in this manner and offered me several subroutines from
MINPACK
package of subroutines
from AT&T's Netlib repository. This is freely available software.
Several other algorithms are taken from Numerical Recipes
by Press, et al. By the terms stated in that book, the
algorithms contained therein are freely available to anyone who
transcribes them. The rest of routines in
If you do not have a license to use FEFF or the UWXAFS analysis programs and are interested in obtaining one contact:
Ed Stern c/o UWXAFS Project University of Washington Department of Physics, FM-15 Seattle WA, 98195, USA phone: (206) 543-2023 fax: (206) 543-0635 electronic mail: stern@phys.washington.edu URL: http://krazy.phys.washington.edu/people/ed.html
or
John Rehr c/o FEFF Project University of Washington Department of Physics, FM-15 Seattle WA, 98195, USA phone: (206) 543-8593 fax: (206) 543-0635 electronic mail: jjr@phys.washington.edu URL: http://pauli.phys.washington.edu/~jjr/
You should request copies of the licensing agreements for FEFF and the UWXAFS programs. These are licensed separately. ATOMS is distributed with both packages.
If you have any good suggestions for expanding the functionality of Phit, please contact the author.
Phit is shipped with the following hard-wired parameters:
parameter (ndatx=2**13, nrangx=10, ndocx=19)
parameter (ntitx=19, nfunx=100, nconx=300)
parameter (nguesx=50, nsetx=300)
These parameters are defined as follows:
ndatx
: max number of input data pointsnrangx
: max number of fitting range delimiters in input datandocx
: max number of documents in i/o datantitx
: max number of title linesnfunx
: max number of input functionsnconx
: max number of constants to be encodednguesx
: max number of guessed valuesnsetx
: max number of set valuesThe 1977 ANSI Standard for Fortran has been followed closely, so that
integer*2
variables for the UWXAFS binary file handling
routines.
There are, unfortunately, aspects of Fortran which are machine- and
compiler-dependent by design. One such aspect occurs in vaxflg
= .false.
to vaxflg = .true.
will optimize the code for a VMS
machine.
The UWXAFS binary file handling routines also use character strings
which are 2048 characters long. Though standard, some compilers need
to be told to accept character strings this long. The notable example
of such a compiler is xlf (for AIX, IBM's Unix flavor), which
needs the compiler switch -qcharlen=2048
. While compiling on any
machine, we recommend including some form of array bounds checking.
If you have any problems with the compilation, it may be worthwhile to
turn off compiler optimization flags. There may be some persistent,
benign compiler warnings when you compile
If the two data file formats (UWXAFS, ASCII) are not acceptable or
convenient to your needs (that is, if you prefer using some other
format), other choices could be added with a minimal amount of coding.
The input and output of data files is fairly well-isolated, with
subroutine inpdat
and outdat
controlling
which data format to use. If you'd like another file format either
contact us about it or follow the example of the routines
inpcol
and outcol
, which read and write
files in the ASCII column data format.
This document was composed using a mark-up language called
linuxdoc-sgml
. This is the documentation standard of the
Linux Documentation Project. linuxdoc-sgml
is an
adaptation of the QWERTZ document type definition written by Tom
Gordon. linuxdoc-sgml
is available on
the net.
The value of a Standard Generalized Markup Language (SGML) is that it
can be processed into any number of formats from a common source.
Using linuxdoc-sgml
, a single marked up file can be used to produce
LaTeX, PostScript, plain ASCII, HTML, TeXinfo, or dvi
documentation.