allocate_clusters Subroutine

public subroutine allocate_clusters(flag, naez, lmax, ncleb, nclsd, nembd1, nsheld, naclsd, lmpot, natomimpd, nsh1, nsh2, nacls, nshell, atomimp, atom, ezoa, icleb, jend, ratom, rclsimp, cmomhost, rcls)

Subroutine handling the allocation/deallocation of arrays that describe clusters

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: flag
integer, intent(in) :: naez

number of atoms in unit cell

integer, intent(in) :: lmax

Maximum l component in wave function expansion

integer, intent(in) :: ncleb
integer, intent(in) :: nclsd
integer, intent(in) :: nembd1
integer, intent(in) :: nsheld
integer, intent(in) :: naclsd
integer, intent(in) :: lmpot
integer, intent(in) :: natomimpd
integer, intent(inout), dimension (:), allocatable :: nsh1

Corresponding index of the sites I/J in (NSH1/2) in the unit cell in a shell

integer, intent(inout), dimension (:), allocatable :: nsh2

Corresponding index of the sites I/J in (NSH1/2) in the unit cell in a shell

integer, intent(inout), dimension (:), allocatable :: nacls

Number of atoms in cluster

integer, intent(inout), dimension (:), allocatable :: nshell

Index of atoms/pairs per shell (ij-pairs); nshell(0) = number of shells

integer, intent(inout), dimension (:), allocatable :: atomimp
integer, intent(inout), dimension (:, :), allocatable :: atom

Atom at site in cluster

integer, intent(inout), dimension (:, :), allocatable :: ezoa

EZ of atom at site in cluster

integer, intent(inout), dimension (:, :), allocatable :: icleb

Pointer array

integer, intent(inout), dimension (:, :, :), allocatable :: jend

Pointer array for icleb()

real(kind=dp), intent(inout), dimension (:, :), allocatable :: ratom
real(kind=dp), intent(inout), dimension (:, :), allocatable :: rclsimp
real(kind=dp), intent(inout), dimension (:, :), allocatable :: cmomhost

Charge moments of each atom of the (left/right) host

real(kind=dp), intent(inout), dimension (:, :, :), allocatable :: rcls

Real space position of atom in cluster