Previous Next Table of Contents

6. Program Notes

6.1 Acknowledgments

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.

6.2 Comments on the Fortran Code

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. iat = 20, maximum number of unique atoms
  2. natx = 800, maximum number of atoms in cluster
  3. ntitx = 9, maximum number of title lines
  4. 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.

6.3 What is new since version 2.42

  1. 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.
  2. 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.
  3. Better recognition of Schoenflies notation.
  4. Improved error messages. Hopefully my error messages are now more informative and spelled correctly.
  5. 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.
  6. Addition of p1 and krypton keywords.
  7. Improved writing of geom.dat files.
  8. Improved handling of input and output filenames.
  9. Allow L1 and L2 edges for feff.inp.
  10. Writing of five digits after the decimal places in feff.inp. This matches the precision of feff's degeneracy checker.
  11. Writing of edge energy in the HOLE line of feff.inp. This is for informational purposes only, it serves no purpose in feff.

6.4 Naming Conventions

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.

6.5 Obtaining New Copies of Feff or of the UWXAFS AnalysisPrograms

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.

6.6 Bibliography

  1. Burzlaff, H. and A. Hountas. J. Appl. Cryst. v.15, p.464 (1982)
  2. Cullity, B.D., Elements of X-Ray Diffraction Addison-Wesley, Reading, MA, 1978
  3. Gay, P. The Crystalline State, Oliver and Boyd, Edinburgh (1972)
  4. Henry, N.F.M. and K. Lonsdale, eds. The International Tables For X-Ray Crystallography, v.I, The Kynoch Press, Birmingham, England (1969)
  5. Ibers, J.A. and W.C. Hamilton, eds. The International Tables For X-Ray Crystallography, v.IV, The Kynoch Press, Birmingham, England (1969)
  6. McMaster, W.H. et al. Compilation of X-Ray Cross Sections (LRL, UCRL-50174, sec.2 rev.1969.)
  7. Phillips, F.C. An Introduction To Crystallography, John Wiley and Sons, Inc. (1971)
  8. Ravel, B., M. Newville, J.O. Cross, and C.E. Bouldin, Physica B, 208&209 (1995) 145-147.
  9. 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.
  10. Rupp B. program Sexie and documentation, PhysiSoft Press.
  11. Sorensen, L.B., et al., in Resonant Anomalous X-ray Scattering, Materlik, G., C.J. Sparks, and K. Fischer, eds. North Holland, Amsterdam, (1994)
  12. 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)
  13. Wycoff, R.W.G. Crystal Structures, v.I-VI, Wiley and Sons, New York (1963)

6.7 About this document.

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