Potential Module


Uses

    • mod_datatypes

Functions

public function CheckExistence(filename)

Arguments

Type IntentOptional Attributes Name
character(len=100), intent(in) :: filename

Return Value integer

public function GetNumberOfLines(filename)

Arguments

Type IntentOptional Attributes Name
character(len=100), intent(in) :: filename

Return Value complex(kind=dp)


Subroutines

public subroutine PotentialMatrixArray(lcut, lcut_input, zatom, meshpoints, nrmax, kinenergy, VLLin, PotMatrixArray)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(nrmax)
integer :: nrmax
complex(kind=dp) :: kinenergy
double precision :: VLLin(nrmax,(2*lcut+1)**2,2)
complex(kind=dp) :: PotMatrixArray(:,:,:)

public subroutine PotentialSuperMatrix(lcut, lcut_input, zatom, meshpoints, nr, kinenergy, chi1array, chi2array, theta_array, phi_array, weight_array, DcoeffIndexListA, DcoeffIndexListB, DcoeffListA, DcoeffListB, VLLin, PotMatrix)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp) :: kinenergy
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
integer, allocatable :: DcoeffIndexListA(:,:)
integer, allocatable :: DcoeffIndexListB(:,:)
complex(kind=dp), allocatable :: DcoeffListA(:)
complex(kind=dp), allocatable :: DcoeffListB(:)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable, dimension(:,:) :: PotMatrix

public subroutine readDcoeff(lcut, DcoeffIndexListA, DcoeffIndexListB, DcoeffListA, DcoeffListB)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer, allocatable :: DcoeffIndexListA(:,:)
integer, allocatable :: DcoeffIndexListB(:,:)
complex(kind=dp), allocatable :: DcoeffListA(:)
complex(kind=dp), allocatable :: DcoeffListB(:)

public subroutine wPotentialExpansionNoB(lcut, lcut_input, zatom, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, DcoeffIndexListA, DcoeffIndexListB, DcoeffListA, DcoeffListB, VLLin, wcoeff)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
integer, allocatable :: DcoeffIndexListA(:,:)
integer, allocatable :: DcoeffIndexListB(:,:)
complex(kind=dp), allocatable :: DcoeffListA(:)
complex(kind=dp), allocatable :: DcoeffListB(:)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable :: wcoeff(:,:,:)

public subroutine wPotentialExpansion(lcut, lcut_input, zatom, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, DcoeffIndexListA, DcoeffIndexListB, DcoeffListA, DcoeffListB, VLLin, wcoeff)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
integer, allocatable :: DcoeffIndexListA(:,:)
integer, allocatable :: DcoeffIndexListB(:,:)
complex(kind=dp), allocatable :: DcoeffListA(:)
complex(kind=dp), allocatable :: DcoeffListB(:)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable :: wcoeff(:,:,:)

public subroutine PotentialExpansion(lcut, lcut_input, zatom, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, VLLin, vcoeff)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable, dimension(:,:,:) :: vcoeff

public subroutine PotentialExpansionNoB(lcut, lcut_input, zatom, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, VLLin, vcoeff)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
integer :: lcut_input
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable, dimension(:,:,:) :: vcoeff

public subroutine makeSpinSphericalArray(lcut, chi1array, chi2array)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)

public subroutine nuCoefficients(lcut, zatom, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, VLLin, nuL, nuR)

Arguments

Type IntentOptional Attributes Name
integer :: lcut
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
double precision :: VLLin(:,:,:)
complex(kind=dp), allocatable :: nuL(:,:,:)
complex(kind=dp), allocatable :: nuR(:,:,:)

public subroutine ExpansionCoefficients(Lambda1, Lambda2, lcut, meshpoints, nr, chi1array, chi2array, theta_array, phi_array, weight_array, nuL, nuR, vcoeff)

Arguments

Type IntentOptional Attributes Name
integer :: Lambda1
integer :: Lambda2
integer :: lcut
double precision :: meshpoints(:)
integer :: nr
complex(kind=dp), allocatable :: chi1array(:,:)
complex(kind=dp), allocatable :: chi2array(:,:)
double precision :: theta_array(integrationpoints)
double precision :: phi_array(integrationpoints)
double precision :: weight_array(integrationpoints)
complex(kind=dp), allocatable :: nuL(:,:,:)
complex(kind=dp), allocatable :: nuR(:,:,:)
complex(kind=dp), dimension(4) :: vcoeff

public subroutine SubMatrixEigenvalue(potPhi, potBx, potBy, potBz, eigenvalue)

Arguments

Type IntentOptional Attributes Name
double precision :: potPhi
double precision :: potBx
double precision :: potBy
double precision :: potBz
complex(kind=dp), dimension(4,2) :: eigenvalue

public subroutine SubMatrixEigenvector(potPhi, potBx, potBy, potBz, eigenvector)

Arguments

Type IntentOptional Attributes Name
double precision :: potPhi
double precision :: potBx
double precision :: potBy
double precision :: potBz
complex(kind=dp), dimension(4,2,2) :: eigenvector

public subroutine getPotPhi(zatom, meshpoints, nr, theta, phi, VLLin, potPhi)

Arguments

Type IntentOptional Attributes Name
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
double precision :: theta
double precision :: phi
double precision :: VLLin(:,:,:)
double precision :: potPhi

public subroutine getPotB(zatom, meshpoints, nr, theta, phi, VLLin, potBx, potBy, potBz)

Arguments

Type IntentOptional Attributes Name
double precision :: zatom
double precision :: meshpoints(:)
integer :: nr
double precision :: theta
double precision :: phi
double precision :: VLLin(:,:,:)
double precision :: potBx
double precision :: potBy
double precision :: potBz