KKRGEOMETRY Program

2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt 2014/06 Benedikt


Variables

Type Attributes Name Initial
integer, parameter :: naezd = 200
integer, parameter :: nimpd = 500
integer, parameter :: nembd = 100
integer, parameter :: NLEMBD = 100
integer, parameter :: ntotd = NAEZD + NIMPD + NEMBD
integer, parameter :: NATYPD = NTOTD
integer, parameter :: NSHAPED = NAEZD+NIMPD
integer, parameter :: NFACED = 100
integer, parameter :: NVERTD = 100
integer, parameter :: lmaxd = 4
integer, parameter :: LMAXD1 = 4*LMAXD
integer, parameter :: nspind = 2
integer, parameter :: lpotd = 2*LMAXD
integer, parameter :: irmd = 1400
integer, parameter :: nfund = 100
integer, parameter :: irid = 2*IRMD/3
integer, parameter :: irnsd = IRMD - 1
integer, parameter :: ncelld = 64
integer, parameter :: ipand = 65
integer, parameter :: npand = 180
integer, parameter :: nrd = 20000
integer, parameter :: naclsd = 1000
integer, parameter :: nclsd = NSHAPED
integer, parameter :: IBMAXD = (LMAXD1+1)*(LMAXD1+1)
real(kind=8), parameter :: ONE = 1.D0
real(kind=8), parameter :: ONEM = -1.D0
real(kind=8), parameter :: TWO = 2.D0
double complex, parameter :: CONE = ( 1.0D0,0.0D0)
double complex, parameter :: CONEM = (-1.0D0,0.0D0)
double complex, parameter :: CZERO = ( 0.0D0,0.0D0)
double complex, parameter :: CI = ( 0.0D0,1.0D0)
real(kind=8) :: ALATC

@# KKRcodes: VORONOI KKRhost KKRimp @# KKRtags: geometry initialization input-output potential


  • Program description and small help.
  • This is a utility of the tb-kkr and impurity programs. The
  • purpose to construct the potential files possibly shape
  • functions and visualize the lattice using an external ray-tracer
  • this version is using povray.
  • As input the tb-kkr "inputcard" is used with some extra parameters
  • In case of impurity calculations an extra file with the atomic
  • positions is neaded.
  • I describe some of the problems the program handles: *
  • If you have no potentials just set the parameters you want
  • and leave blanc space as potential file * *
    1. ASA potentials for some lattice, start from potentials
  • in the GENERAL MESH or start from scratch *
  • i. Define the lattice in the inputcard
  • ii. Put old potential as input and use ASA parameters in the
  • inputcard
  • The program calculates asa spheres, etc and produces the potential
  • in the correct format to start the tb-kkr *
    1. I nead FP for some lattice *
  • i Define lattice and give parameters for full potential
  • ii. Use some old potential or start from scratch
  • iii. Define the "muffin-tin-ization" in case of shifting
  • the atoms later. This must be given in a.u. for each atom
  • The program calculates the first neighbours for each atom, makes
  • a Voronoi construction (posible weights) and then constructs the
  • shape functions. It sets the shape functions to the given mt-radius
  • and continues by constructing the potentials in the obtrained
  • radial mesh. *
    1. Potentials for impurity calculation
  • i. prepare "inputcard" for all parameters, and use the option
  • "IMPURITY" make a file with the impurity atomic positions
  • filename: "impurity.atoms"
  • in the format given in subroutine 'readimpatoms_kkrflex' ! *
  • The program creates two files : lattice.pov and voronoi.pov
  • you nead to put the file "povray.ini" in your path and run
  • povray with : povray +I lattice.pov
  • Rasmol with connectivity info also avaliable 3.3.2002, protein
  • database format
  • visualize file: lattice.pdb *
  • the camera positions etc are in the end of the files.
  • help on povray : http://www.povray.org
  • ver. 10.2000 *
  • parameters due to change to do different things:
  • bbox : data statement changes the bounding box
  • for drawing atoms with povray all atoms
  • in the box are written out in file lattive.pov
  • npoi : data number of points for the shape function
  • usualy set to 125 and can be changed
  • dlt = 0.05 controls the accuracy of angular integration
  • for producing the shape functions can be also changed
  • nrad : number of points for the muffin-tinizing
  • used in sub mtmesh
  • planed : smeared shapes *
  • KNOWN PROBLEM : Sometimes the voronoi construction fails.
  • This usualy means that the coordinates are not accurate enought
  • Try to change the weights by 0.001 or so and run again

real(kind=8) :: BLATC

@# KKRcodes: VORONOI KKRhost KKRimp @# KKRtags: geometry initialization input-output potential


  • Program description and small help.
  • This is a utility of the tb-kkr and impurity programs. The
  • purpose to construct the potential files possibly shape
  • functions and visualize the lattice using an external ray-tracer
  • this version is using povray.
  • As input the tb-kkr "inputcard" is used with some extra parameters
  • In case of impurity calculations an extra file with the atomic
  • positions is neaded.
  • I describe some of the problems the program handles: *
  • If you have no potentials just set the parameters you want
  • and leave blanc space as potential file * *
    1. ASA potentials for some lattice, start from potentials
  • in the GENERAL MESH or start from scratch *
  • i. Define the lattice in the inputcard
  • ii. Put old potential as input and use ASA parameters in the
  • inputcard
  • The program calculates asa spheres, etc and produces the potential
  • in the correct format to start the tb-kkr *
    1. I nead FP for some lattice *
  • i Define lattice and give parameters for full potential
  • ii. Use some old potential or start from scratch
  • iii. Define the "muffin-tin-ization" in case of shifting
  • the atoms later. This must be given in a.u. for each atom
  • The program calculates the first neighbours for each atom, makes
  • a Voronoi construction (posible weights) and then constructs the
  • shape functions. It sets the shape functions to the given mt-radius
  • and continues by constructing the potentials in the obtrained
  • radial mesh. *
    1. Potentials for impurity calculation
  • i. prepare "inputcard" for all parameters, and use the option
  • "IMPURITY" make a file with the impurity atomic positions
  • filename: "impurity.atoms"
  • in the format given in subroutine 'readimpatoms_kkrflex' ! *
  • The program creates two files : lattice.pov and voronoi.pov
  • you nead to put the file "povray.ini" in your path and run
  • povray with : povray +I lattice.pov
  • Rasmol with connectivity info also avaliable 3.3.2002, protein
  • database format
  • visualize file: lattice.pdb *
  • the camera positions etc are in the end of the files.
  • help on povray : http://www.povray.org
  • ver. 10.2000 *
  • parameters due to change to do different things:
  • bbox : data statement changes the bounding box
  • for drawing atoms with povray all atoms
  • in the box are written out in file lattive.pov
  • npoi : data number of points for the shape function
  • usualy set to 125 and can be changed
  • dlt = 0.05 controls the accuracy of angular integration
  • for producing the shape functions can be also changed
  • nrad : number of points for the muffin-tinizing
  • used in sub mtmesh
  • planed : smeared shapes *
  • KNOWN PROBLEM : Sometimes the voronoi construction fails.
  • This usualy means that the coordinates are not accurate enought
  • Try to change the weights by 0.001 or so and run again

real(kind=8) :: CLATC

@# KKRcodes: VORONOI KKRhost KKRimp @# KKRtags: geometry initialization input-output potential


  • Program description and small help.
  • This is a utility of the tb-kkr and impurity programs. The
  • purpose to construct the potential files possibly shape
  • functions and visualize the lattice using an external ray-tracer
  • this version is using povray.
  • As input the tb-kkr "inputcard" is used with some extra parameters
  • In case of impurity calculations an extra file with the atomic
  • positions is neaded.
  • I describe some of the problems the program handles: *
  • If you have no potentials just set the parameters you want
  • and leave blanc space as potential file * *
    1. ASA potentials for some lattice, start from potentials
  • in the GENERAL MESH or start from scratch *
  • i. Define the lattice in the inputcard
  • ii. Put old potential as input and use ASA parameters in the
  • inputcard
  • The program calculates asa spheres, etc and produces the potential
  • in the correct format to start the tb-kkr *
    1. I nead FP for some lattice *
  • i Define lattice and give parameters for full potential
  • ii. Use some old potential or start from scratch
  • iii. Define the "muffin-tin-ization" in case of shifting
  • the atoms later. This must be given in a.u. for each atom
  • The program calculates the first neighbours for each atom, makes
  • a Voronoi construction (posible weights) and then constructs the
  • shape functions. It sets the shape functions to the given mt-radius
  • and continues by constructing the potentials in the obtrained
  • radial mesh. *
    1. Potentials for impurity calculation
  • i. prepare "inputcard" for all parameters, and use the option
  • "IMPURITY" make a file with the impurity atomic positions
  • filename: "impurity.atoms"
  • in the format given in subroutine 'readimpatoms_kkrflex' ! *
  • The program creates two files : lattice.pov and voronoi.pov
  • you nead to put the file "povray.ini" in your path and run
  • povray with : povray +I lattice.pov
  • Rasmol with connectivity info also avaliable 3.3.2002, protein
  • database format
  • visualize file: lattice.pdb *
  • the camera positions etc are in the end of the files.
  • help on povray : http://www.povray.org
  • ver. 10.2000 *
  • parameters due to change to do different things:
  • bbox : data statement changes the bounding box
  • for drawing atoms with povray all atoms
  • in the box are written out in file lattive.pov
  • npoi : data number of points for the shape function
  • usualy set to 125 and can be changed
  • dlt = 0.05 controls the accuracy of angular integration
  • for producing the shape functions can be also changed
  • nrad : number of points for the muffin-tinizing
  • used in sub mtmesh
  • planed : smeared shapes *
  • KNOWN PROBLEM : Sometimes the voronoi construction fails.
  • This usualy means that the coordinates are not accurate enought
  • Try to change the weights by 0.001 or so and run again

real(kind=8) ::

@# KKRcodes: VORONOI KKRhost KKRimp @# KKRtags: geometry initialization input-output potential


  • Program description and small help.
  • This is a utility of the tb-kkr and impurity programs. The
  • purpose to construct the potential files possibly shape
  • functions and visualize the lattice using an external ray-tracer
  • this version is using povray.
  • As input the tb-kkr "inputcard" is used with some extra parameters
  • In case of impurity calculations an extra file with the atomic
  • positions is neaded.
  • I describe some of the problems the program handles: *
  • If you have no potentials just set the parameters you want
  • and leave blanc space as potential file * *
    1. ASA potentials for some lattice, start from potentials
  • in the GENERAL MESH or start from scratch *
  • i. Define the lattice in the inputcard
  • ii. Put old potential as input and use ASA parameters in the
  • inputcard
  • The program calculates asa spheres, etc and produces the potential
  • in the correct format to start the tb-kkr *
    1. I nead FP for some lattice *
  • i Define lattice and give parameters for full potential
  • ii. Use some old potential or start from scratch
  • iii. Define the "muffin-tin-ization" in case of shifting
  • the atoms later. This must be given in a.u. for each atom
  • The program calculates the first neighbours for each atom, makes
  • a Voronoi construction (posible weights) and then constructs the
  • shape functions. It sets the shape functions to the given mt-radius
  • and continues by constructing the potentials in the obtrained
  • radial mesh. *
    1. Potentials for impurity calculation
  • i. prepare "inputcard" for all parameters, and use the option
  • "IMPURITY" make a file with the impurity atomic positions
  • filename: "impurity.atoms"
  • in the format given in subroutine 'readimpatoms_kkrflex' ! *
  • The program creates two files : lattice.pov and voronoi.pov
  • you nead to put the file "povray.ini" in your path and run
  • povray with : povray +I lattice.pov
  • Rasmol with connectivity info also avaliable 3.3.2002, protein
  • database format
  • visualize file: lattice.pdb *
  • the camera positions etc are in the end of the files.
  • help on povray : http://www.povray.org
  • ver. 10.2000 *
  • parameters due to change to do different things:
  • bbox : data statement changes the bounding box
  • for drawing atoms with povray all atoms
  • in the box are written out in file lattive.pov
  • npoi : data number of points for the shape function
  • usualy set to 125 and can be changed
  • dlt = 0.05 controls the accuracy of angular integration
  • for producing the shape functions can be also changed
  • nrad : number of points for the muffin-tinizing
  • used in sub mtmesh
  • planed : smeared shapes *
  • KNOWN PROBLEM : Sometimes the voronoi construction fails.
  • This usualy means that the coordinates are not accurate enought
  • Try to change the weights by 0.001 or so and run again

real(kind=8) :: ATWGHT(NATYPD)
real(kind=8) :: BRAVAIS(3,3)
real(kind=8) ::
integer :: ICC
integer ::
integer :: EQINV(NAEZD)
integer ::
logical :: LSHIFT(NTOTD)
logical ::
real(kind=8) :: RMTHLF(NAEZD+NEMBD)
real(kind=8) ::
integer :: NFACE_ALL(NTOTD)
integer ::
integer :: ATOM(NACLSD,NTOTD)
integer ::
integer :: NLAY
integer :: NLBASIS
integer :: NRBASIS
integer :: NLEFT
integer :: NRIGHT
integer :: IER
integer :: NTOTAL
integer :: N
integer :: II1
integer :: II2
integer :: IVEC
real(kind=8) :: ZPERLEFT(3)
real(kind=8) :: ZPERIGHT(3)
real(kind=8) :: TLEFT(3,NEMBD)
real(kind=8) :: TRIGHT(3,NEMBD)
real(kind=8) :: RMTCORE(NTOTD)
integer :: NUMIMP
integer :: NKILLATOM
integer :: KILLATOM(NIMPD)
integer :: CLSIMP(NIMPD)
integer :: NACLSIMP(NACLSD)
integer :: ATOMIMP(NACLSD,NIMPD)
integer :: NCLSIMP
real(kind=8) :: RCLSIMP(3,NACLSD,NACLSD)
real(kind=8) :: RIMPURITY(3,NIMPD)
real(kind=8) :: RKILL(3,NIMPD)
real(kind=8) :: DXIMP(NIMPD)
real(kind=8) :: DYIMP(NIMPD)
real(kind=8) :: DZIMP(NIMPD)
real(kind=8) :: ZIMP(NIMPD)
real(kind=8) :: RMTIMP(NIMPD)
real(kind=8) :: RMTHLFIMP(NIMPD)
integer :: NVEC
integer :: NFACELIM
real(kind=8) :: RVEC(3,NFACED)
integer :: NCELL
integer :: NPAN_ALL(NSHAPED)
integer :: MESHN_ALL(NSHAPED)
integer :: NFUN_ALL(NSHAPED)
integer :: NM_ALL(NPAND,NSHAPED)
integer :: LMIFUN_ALL(IBMAXD,NSHAPED)
real(kind=8) :: XRN_ALL(IRID,NSHAPED)
real(kind=8) :: DRN_ALL(IRID,NSHAPED)
real(kind=8) ::
real(kind=8) :: SCALE_ALL
integer :: NFACE
integer :: NPANEL
integer :: NVERTMAX
integer :: NFACEMAX
integer :: NVERT(NFACED)
integer :: NFACECL(NCLSD)
integer :: NVERTCL(NFACED,NCLSD)
real(kind=8) :: VOLUME
real(kind=8) :: A3(NFACED)
real(kind=8) :: B3(NFACED)
real(kind=8) :: C3(NFACED)
real(kind=8) :: D3(NFACED)
real(kind=8) :: A3CL(NFACED,NCLSD)
real(kind=8) :: B3CL(NFACED,NCLSD)
real(kind=8) :: C3CL(NFACED,NCLSD)
real(kind=8) :: D3CL(NFACED,NCLSD)
real(kind=8) :: XVERT(NVERTD,NFACED)
real(kind=8) :: YVERT(NVERTD,NFACED)
real(kind=8) :: ZVERT(NVERTD,NFACED)
real(kind=8) :: XVERTCL(NVERTD,NFACED,NCLSD)
real(kind=8) :: YVERTCL(NVERTD,NFACED,NCLSD)
real(kind=8) :: ZVERTCL(NVERTD,NFACED,NCLSD)
real(kind=8) :: VOLUMECL(NSHAPED)
real(kind=8) :: RWSCL(NSHAPED)
real(kind=8) :: RMTCL(NSHAPED)
real(kind=8) :: DX(NTOTD)
real(kind=8) :: DY(NTOTD)
real(kind=8) :: DZ(NTOTD)
real(kind=8) :: ROUT
real(kind=8) :: RTEST
real(kind=8) :: DLT
real(kind=8) :: CRAD
real(kind=8) :: RX
real(kind=8) :: RY
real(kind=8) :: RZ
real(kind=8) :: MTRADIUS
real(kind=8) :: VTOT
real(kind=8) :: SHAPESHIFT(3,NTOTD)
real(kind=8) :: VCENTER(3)
character(len=256) :: UIO
integer :: NATOMS
integer :: NSITES
integer :: NSHAPE
integer :: LMAX
integer :: KEYPAN
integer :: NPOI
integer :: NA
integer :: IAT
integer :: JAT
integer :: ICL
integer :: N1A
integer :: I2
integer :: II
integer :: ISITE
integer :: NBEGIN
integer :: ISITEBEGIN
integer :: IFACE
integer :: ISHAPE
integer :: JV
integer :: CELLREFI
integer :: IVERT
integer :: NM(NPAND)
integer :: SHAPECL(NATYPD)
integer :: IL
integer :: I
integer :: J
integer :: IFILE
integer :: NREF
integer :: INS
integer :: KWS
integer :: LPOT
integer :: LMPOT
integer :: NSPIN
integer :: KSHAPE
integer :: NR
integer :: KMT
integer :: NINEQ
integer :: LMMAX
integer :: I1
integer :: IC0
integer :: IX
integer :: IIMP
integer :: ICLSIMP
logical :: LINTERFACE
logical :: LJELL
logical :: MAKESHAPE
logical :: VOROPLOT
logical :: LCOMPARE
logical :: LSKIP
real(kind=8) :: RCUTZ
real(kind=8) :: RCUTXY
real(kind=8) :: QBOUND
real(kind=8) :: SHIFT(3)
real(kind=8) :: DIFF
real(kind=8) :: RMT0
real(kind=8) :: DXI
real(kind=8) :: DYI
real(kind=8) :: DZI
real(kind=8) :: WEIGHT0
real(kind=8) :: RMTCOREI
real(kind=8) :: BBOX(3)
real(kind=8) :: IMPSIZE(NIMPD)
real(kind=8) :: WEIGHT(NFACED)
real(kind=8) :: SIZEFAC(-NLEMBD*NEMBD:NTOTD)
integer :: IRM
integer :: KXC
integer :: ICLUSTER
integer :: LMAXSHAPE
integer :: NRAD
integer :: NMIN
integer :: NSMALL
character(len=124) :: TXC(3)
logical :: OPT
logical :: TEST
character(len=3) :: ELEM_NAME
character(len=40) :: I13
real(kind=8) :: PI
real(kind=8) :: CRT(NPAND)
real(kind=8) :: DENPT
real(kind=8) :: STARTFP
real(kind=8) :: FPRADIUS(NTOTD)
real(kind=8) :: BOUT
integer :: NPAN
integer :: NMESH
integer :: NMT
integer :: IP
logical :: POT_EXISTS