irwns Subroutine

public subroutine irwns(cr, dr, efac, qns, vnspll, icst, ipan, ircut, nsra, pzlm, qzlm, pzekdr, qzekdr, cder, cmat, dder, dmat, irmind, irmd, irmin, irmax, ipand, lmmaxd)

Uses

Born approximation (n given by input parameter icst). Author: B. Drittler, R. Zeller Date: Mar. 1989 Category: KKRhost, single-site Deprecated: False ! This needs to be set to True for deprecated subroutines

Using the wave functions pz and qz ( regular and irregular solution ) of the spherically averaged potential, the ir- regular wavefunction qns is determined by

qns(ir,lm1,lm2) = cr(ir,lm1,lm2)pz(ir,l1) + dr(ir,lm1,lm2)qz(ir,l1)

the matrices cr and dr are determined by integral equations containing qns and only the non spherical contributions of the potential, stored in vinspll. These integral equations are solved iteratively with Born approximation up to given n.

The original way of writing the cr and dr matrices in the equa- tion above caused numerical troubles. Therefore here are used rescaled cr and dr matrices (compare subroutine wftsca):

~ cr(ir,lm1,lm2) = sqrt(e)(l1+l2) * cr(ir,lm1,lm2)/((2l1-1)!!(2*l2-1)!!)

~ dr(ir,lm1,lm2) = sqrt(e)(l2-l1) * dr(ir,lm1,lm2)((2l1-1)!!/(2*l2-1)!!)

Attention : the sign of the dr matrix is changed to reduce the =========== number of floating point operations

Modified for the use of shape functions (see notes by B. Drittler) B. Drittler Mar. 1989

modified by R. Zeller Aug. 1994

Arguments

Type IntentOptional Attributes Name
complex(kind=dp) :: cr(lmmaxd,lmmaxd)
complex(kind=dp) :: dr(lmmaxd,lmmaxd)
complex(kind=dp) :: efac(lmmaxd)
complex(kind=dp) :: qns(lmmaxd,lmmaxd,irmind:irmd,2)
real(kind=dp) :: vnspll(lmmaxd,lmmaxd,irmind:irmd)
integer :: icst
integer :: ipan
integer :: ircut(0:ipand)
integer :: nsra
complex(kind=dp) :: pzlm(lmmaxd,irmind:irmd,2)
complex(kind=dp) :: qzlm(lmmaxd,irmind:irmd,2)
complex(kind=dp) :: pzekdr(lmmaxd,irmind:irmd,2)
complex(kind=dp) :: qzekdr(lmmaxd,irmind:irmd,2)
complex(kind=dp) :: cder(lmmaxd,lmmaxd,irmind:irmd)
complex(kind=dp) :: cmat(lmmaxd,lmmaxd,irmind:irmd)
complex(kind=dp) :: dder(lmmaxd,lmmaxd,irmind:irmd)
complex(kind=dp) :: dmat(lmmaxd,lmmaxd,irmind:irmd)
integer :: irmind
integer :: irmd
integer :: irmin
integer :: irmax
integer :: ipand
integer :: lmmaxd