Previous Next Table of Contents

12. Appendix E. Code Variables, Dimensions and Descriptions

The end of line comments were removed from the code because they are not standard Fortran. The array names are a bit cryptic due to the six character limit in standard FORTRAN -- the comments included here explain what the names mean. If you need to run larger problems than the dimension statements in the code allow, simply change the dimensions in all the relevant parameter statements and recompile. However, dimensions associated with the atom and phase shift codes, e.g. the number of r-mesh points and the max number of angular momentum levels should NOT be changed.

12.1 dim.h:

c     These names have been checked with all current feff code.
c     Changing the common names in the future may be a good idea.
c     June 12, 1992

      parameter (nphx = 7)      !max number of unique potentials (potph)
      parameter (npotx = nphx)  !max number of unique pots (genfmt, paths)
      parameter (nfrx = nphx)   !max number of free atom types
      parameter (novrx = 8)     !max number of overlap shells
      parameter (natx = 250)    !max number of atoms in problem
      parameter (ltot = 24)     !max number of ang mom (arrays 1:ltot+1)
      parameter (nrptx = 250)   !Loucks r grid used through overlap
      parameter (nex = 100)     !Number of energy points genfmt, etc.
      parameter (lamtot=15)     !Max number of distinct lambda's for genfmt
                                !15 handles iord 2 and exact ss
      parameter (mtot=2,ntot=2) !vary mmax and nmax independently
      parameter (legtot=7)      !max number of legs, used in genfmt,
                                !NOT in path finder
      parameter (npatx = 8)     !max number of path atoms, used in path
                                !finder, NOT in genfmt

12.2 arrays.h:

c     Notes:
c        nat    number of atoms in problem
c        nph    number of unique potentials
c        nfr    number of unique free atoms
c        ihole  hole code of absorbing atom
c        iph=0 for central atom
c        ifr=0 for central atom

c     Specific atom input data
      dimension iphat(natx)     !given specific atom, which unique pot?
      dimension rat(3,natx)     !cartesian coords of specific atom

c     Unique potential input data
      dimension iatph(0:nphx)   !given unique pot, which atom is model?
                                !(0 if none specified for this unique pot)
      dimension ifrph(0:nphx)   !given unique pot, which free atom?
      dimension xnatph(0:nphx)  !given unique pot, how many atoms are there
                                !of this type? (used for interstitial calc)
      character*6 potlbl(0:nphx)        !label for user convenience

      dimension folp(0:nphx)    !overlap factor for rmt calculation
      dimension novr(0:nphx)    !number of overlap shells for unique pot
      dimension iphovr(novrx,0:nphx)    !unique pot for this overlap shell
      dimension nnovr(novrx,0:nphx)     !number of atoms in overlap shell
      dimension rovr(novrx,0:nphx)      !r for overlap shell

c     Free atom data
      dimension ion(0:nfrx)     !ionicity, input
      dimension iz(0:nfrx)      !atomic number, input

c     ATOM output
c     Note that ATOM output is dimensioned 251, all other r grid
c     data is set to nrptx, currently 250
      dimension rho(251,0:nfrx)         !density*4*pi
      dimension vcoul(251,0:nfrx)       !coulomb potential

c     Overlap calculation results
      dimension edens(nrptx,0:nphx)     !overlapped density*4*pi
      dimension vclap(nrptx,0:nphx)     !overlapped coul pot
      dimension vtot (nrptx,0:nphx)     !overlapped total potential

c     Muffin tin calculation results
      dimension imt(0:nphx)     !r mesh index just inside rmt
      dimension inrm(0:nphx)    !r mesh index just inside rnorman
      dimension rmt(0:nphx)     !muffin tin radius
      dimension rnrm(0:nphx)    !norman radius

c     PHASE output
      complex*16 eref(nex)              !interstitial energy ref
      complex*16 ph(nex,ltot+1,0:nphx)  !phase shifts
      dimension lmax(0:nphx)            !number of ang mom levels

12.3 lambda.h:

      common /lambda/
     4   mlam(lamtot),  !mu for each lambda
     5   nlam(lamtot),  !nu for each lambda
     1   lamx,          !max lambda in problem
     2   laml0x,        !max lambda for vectors involving absorbing atom
     3   mmaxp1, nmax   !max mu in problem + 1, max nu in problem

12.4 pdata.h:

c     Note that leg nleg is the leg ending at the central atom, so that
c     ipot(nleg) is central atom potential, rat(nleg) position of
c     central atom.
c     Central atom has ipot=0
c     For later convenience, rat(,0) and ipot(0) refer to the central
c     atom, and are the same as rat(,nleg), ipot(nleg).

c     text and title arrays include carriage control
      character*80 text, title
      character*6  potlbl
      common /str/ text(40),    !text header from potph
     1             title(5),    !title from paths.dat
     1             potlbl(0:npotx)      ! potential labels for output

      complex*16 ph, eref
      common /pdata/
     1 ph(nex,ltot+1,0:npotx),  !complex phase shifts,
     1                                  !central atom ipot=0
     1 rat(3,0:legtot),         !position of each atom, code units (bohr)
     1 eref(nex),               !complex energy reference
     1 em(nex),         !energy mesh
     1 ri(legtot), beta(legtot), eta(legtot),   !r, beta, eta for each leg
     1 deg, rnrmav, xmu, edge,  !(output only)
     1 lmax(nex,0:npotx),       !max l with non-zero phase for each energy
     1 ipot(0:legtot),  !potential for each atom in path
     1 iz(0:npotx),     !atomic number (output only)
     1 ltext(40), ltitle(5),    !length of each string
     1 nsc, nleg,       !nscatters, nlegs (nleg = nsc+1)
     1 npot, ne,        !number of potentials, energy points
     1 ik0,             !index of energy grid corresponding to k=0 (edge)
     1 ipath,   !index of current path (output only)
     1 ihole,   !(output only)
     1 l0, il0, !lfinal and lfinal+1 (used for indices)
     1 lmaxp1,  !largest lmax in problem + 1
     1 ntext, ntitle    !number of text and title lines

Previous Next Table of Contents