Previous
Next
Table of Contents
I would like to thank my many colleagues who have been a source of
help and inspiration. The support of Profs. Ed Stern and John Rehr
has always been appreciated. I would like to thank Chuck Bouldin,
Boyan Boyanovich, Julie Cross, Tim Elam, Matt Newville, Hans Stragier,
Kalle Voss, Steve Zabinsky, and Yanjun Zhang for their contributions,
helpful criticism and useful suggestions as I have developed this
program.
The essential calculation in this program is handled in the routine
equipt
, which decodes the Hermann-Maguin notation and performs
the proscribed symmetry operations on the input atomic coordinates.
This routine was written by H. Burzlaff and A. Hountas and is in the
public domain. Several parts of this program were inspired by the
program sexie by Bernhard Rupp. sexie uses input files that
are similar to atoms.inp
and its database is a good resource for
composing atoms.inp
files. The original version of the routine
mucal
was written by P. Bandyopadhyay using data from
Compilation of X-Ray Cross Section by McMaster et. al. Several
of the character string manipulation routines (triml, istrln,
upper, lower, bwords
) were written by S.I. Zabinsky and M. Newville
and released for this use.
Every routine used by atoms has been written in ANSI standard
Fortran-77. At the time of this writing the code has been found to
compile and run under many difffernt operating systems. Presently,
the code is developed on an Intel 486 laptop which runs Linux using
F2C and GCC for compilation. The code is thus easily ported to any
machine with a Fortran compiler. The author has run atoms under
four different unixes, MS-DOS, Macintosh System 7.5, Vax-VMS, and
Open-VMS on an DEC Alpha. At this time, there are four caveats for
the user:
- In the main program, the unit for the output files are opened
with status
unknown
. On VMS machines, it is more convenient, but
not necessary, to open files with new
status to take advantage of
multiple versions of files. To change this for use on a Vax-VMS
machine, search for the line in the main program where the variable
vaxflg
is defined and change it to .true.
- All run-time messages are written by the subroutine
messag
. Thus if your machine has particular requirements for
writing to standard output, messag
should be the only routine
that you need to alter.
- Tab characters are allowed in the input file, even though the
handling of tab characters might be machine specific. This is done by
reading a line from the input file and filtering it through a
subroutine called
untab
, which replaces tab characters with blank
spaces. untab
is written assuming tab is ASCII character 9. If
your machine handles this differently, you only need to edit
untab
or simply don't use tabs.
- The character string manipulation assumes the ASCII character
set. If your machine does not use ASCII, then you are probably
familiar with how to alter code for use on your machine. Contact the
author for which subroutines need to be altered.
If you ever have a problem with carriage-control while using
atoms or feff with a feff.inp
file generated by
atoms, please contact the author.
atoms is delivered with the following parameter values:
-
iat = 20
, maximum number of unique atoms
-
natx = 800
, maximum number of atoms in cluster
-
ntitx = 9
, maximum number of title lines
-
maxln = 800
, maximum number of atoms in feff.inp
feff limits the size of the cluster in its calculation to 400
atoms. In atoms these values are imposed by parameter
statements, thus are easy to change. Global parameters such as these
are set in the main program and passed as arguments to the rest of the
program. Find these near the beginning of the main program and change
them to whatever value you want. If you do not know exactly how to do
this but still think you need to, consult your local Fortran guru or,
if you must, the author.
The source code for atoms is written in a style with mostly lower
case characters. All executable statements are written in lower case.
This is a departure from strict adherence to the ANSI standard.
Care has been taken to make the code insensitive to case. That is, the
source may be placed in all upper case or all lower case without
damaging its functionality. The algorithm that parses the input file
is certainly insensitive to case.
- Correct handling of hexagonal space groups. This is the
most important new feature. My chagrined thanks to the many
people who discovered this little problem and took the time to tell me
about it. I also improved handling of trigonal and rhombohedral space
groups.
- Support for notations of all settings of orthorhombic,
tetragonal, and monoclinic space groups. atoms is now fully
compliant with all Hermann-Maguin short notations as specified in
The International Tables of X-Ray Crystallography, 1969 edition.
- Better recognition of Schoenflies notation.
- Improved error messages. Hopefully my error messages are now
more informative and spelled correctly.
- Improvements to the calculations using the McMaster tables. I
have also corrected a few incorrect values that have been found in the
electronic version of the McMaster tables.
- Addition of
p1
and krypton
keywords.
- Improved writing of
geom.dat
files.
- Improved handling of input and output filenames.
- Allow L1 and L2 edges for
feff.inp
.
- Writing of five digits after the decimal places in
feff.inp
.
This matches the precision of feff's degeneracy checker.
- Writing of edge energy in the
HOLE
line of feff.inp
.
This is for informational purposes only, it serves no purpose in
feff.
Between versions 2.41 and 2.42, my program had a name change. Earlier
versions were called atom, while later versions are called
atoms, with an s. The reason for this change was to avoid
confusion with the subroutine atom
that is an important part of
feff. Hopefully this reduces confusion rather than adds to it!
For now, the version number is incremented by 0.01 when minor
functionality is added and by 0.1 when major functionality is added.
Bug corrections have been denoted with an incrementing letter appended
to the version number.
If you do not have a license to use the UWXAFS analysis
programs or feff 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
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
You should request copies of the licensing agreements for feff
and the UWXAFS programs. These are licensed separately. atoms
is distributed with both packages.
- Burzlaff, H. and A. Hountas. J. Appl. Cryst. v.15,
p.464 (1982)
- Cullity, B.D., Elements of X-Ray Diffraction
Addison-Wesley, Reading, MA, 1978
- Gay, P. The Crystalline State,
Oliver and Boyd, Edinburgh (1972)
- Henry, N.F.M. and K. Lonsdale, eds. The International
Tables For X-Ray
Crystallography, v.I, The Kynoch Press, Birmingham, England (1969)
- Ibers, J.A. and W.C. Hamilton, eds. The International
Tables For X-Ray
Crystallography, v.IV, The Kynoch Press, Birmingham, England (1969)
- McMaster, W.H. et al. Compilation of X-Ray Cross
Sections (LRL, UCRL-50174, sec.2 rev.1969.)
- Phillips, F.C. An Introduction To Crystallography,
John Wiley and Sons, Inc. (1971)
- Ravel, B., M. Newville, J.O. Cross, and C.E. Bouldin,
Physica B, 208&209 (1995) 145-147.
- Rehr, J.J., R.C. Albers and S.I. Zabinsky, Phys. Rev. Lett.
69 (1992) 3397; J.J. Rehr and R.C. Albers Phys. Rev. B
41 (1990) 8139; J.J. Rehr and S.I. Zabinsky program
feff and
documentation.
- Rupp B. program Sexie and documentation, PhysiSoft Press.
- Sorensen, L.B., et al., in Resonant Anomalous X-ray
Scattering, Materlik, G., C.J. Sparks, and K. Fischer, eds.
North Holland, Amsterdam, (1994)
- Stern, E.A. and S.M. Heald, Basic Principles and Applications
of EXAFS, ch.10 in Handbook on Synchrotron Radiation, v.1,
edited by E.E. Koch, North Holland, (1983)
- Wycoff, R.W.G. Crystal Structures, v.I-VI, Wiley and Sons,
New York (1963)
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 by ftp at
ftp.cc.gatech.edu. The document type definition was altered
somewhat to meet the needs of the UWXAFS documentation.
The value of a Standardized General 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.
Previous
Next
Table of Contents