ssite Subroutine

public subroutine ssite(iwrregwf, iwrirrwf, nfilcbwf, calcint, getirrsol, soctl, ctl, eryd, p, ihyper, iprint, ikm1lin, ikm2lin, nlq, nkmq, nlinq, nt, nkm, iqat, tsst, msst, tsstlin, dzz, dzj, szz, szj, ozz, ozj, bzz, bzj, qzz, qzj, tzz, tzj, vt, bt, at, zat, nucleus, r, drdi, r2drdi, jws, imt, ameopo, lopt, solver, cgc, ozzs, ozjs, nlmax, nqmax, linmax, nrmax, nmmax, ntmax, nkmmax, nkmpmax, nlamax)

Uses

Assign quantum numbers and call routine to solve 8 coupled differentail radial Dirac eqautions. The resulting wavefunctions are used to calculate t-matrices in the representation. Calculation of the radial integrals: for IHYPER <> 0. Calculation of the hyperfine matrix elements.

Note

  • Ryd-units are used throughout.
  • To save storage force JG/JF and PR/QR to share the same storage by corresponding argument list in CALL.
  • 28/10/94 HE tidy up, P,Q used in <DIRAC> instead of g,f
  • 05/10/96 HE workspace for wavefunctions and matrices is allocated dynamically
  • 07/02/05 VP few changes connected to the calculation of orbital polarisation

Arguments

Type IntentOptional Attributes Name
integer :: iwrregwf
integer :: iwrirrwf
integer :: nfilcbwf
logical :: calcint
logical :: getirrsol
real(kind=dp) :: soctl(ntmax,nlmax)
real(kind=dp) :: ctl(ntmax,nlmax)
complex(kind=dp) :: eryd
complex(kind=dp) :: p
integer :: ihyper
integer :: iprint
integer :: ikm1lin(linmax)
integer :: ikm2lin(linmax)
integer :: nlq(nqmax)
integer :: nkmq(nqmax)
integer :: nlinq(nqmax)
integer :: nt
integer :: nkm
integer :: iqat(nqmax,ntmax)
complex(kind=dp) :: tsst(nkmmax,nkmmax,ntmax)
complex(kind=dp) :: msst(nkmmax,nkmmax,ntmax)
complex(kind=dp) :: tsstlin(linmax,ntmax)
complex(kind=dp) :: dzz(linmax,ntmax)
complex(kind=dp) :: dzj(linmax,ntmax)
complex(kind=dp) :: szz(linmax,ntmax)
complex(kind=dp) :: szj(linmax,ntmax)
complex(kind=dp) :: ozz(linmax,ntmax)
complex(kind=dp) :: ozj(linmax,ntmax)
complex(kind=dp) :: bzz(linmax,ntmax)
complex(kind=dp) :: bzj(linmax,ntmax)
complex(kind=dp) :: qzz(linmax,ntmax)
complex(kind=dp) :: qzj(linmax,ntmax)
complex(kind=dp) :: tzz(linmax,ntmax)
complex(kind=dp) :: tzj(linmax,ntmax)
real(kind=dp) :: vt(nrmax,ntmax)
real(kind=dp) :: bt(nrmax,ntmax)
real(kind=dp) :: at(nrmax,nlamax,3,ntmax)
integer :: zat(ntmax)
integer :: nucleus
real(kind=dp) :: r(nrmax,nmmax)
real(kind=dp) :: drdi(nrmax,nmmax)
real(kind=dp) :: r2drdi(nrmax,nmmax)
integer :: jws(nmmax)
integer :: imt(ntmax)
real(kind=dp) :: ameopo(nkmmax,nkmmax,nlamax,3)
integer :: lopt(ntmax)
character(len=10) :: solver
real(kind=dp) :: cgc(nkmpmax,2)
complex(kind=dp) :: ozzs(linmax,ntmax,2)
complex(kind=dp) :: ozjs(linmax,ntmax,2)
integer :: nlmax
integer :: nqmax
integer :: linmax
integer :: nrmax
integer :: nmmax
integer :: ntmax
integer :: nkmmax
integer :: nkmpmax
integer :: nlamax