memoryhandling Module

Module to handle the allocation of arrays to be later distributed it aims to bring modularity to the memory management. Of this way it should be easier to ensure that only arrays that are needed for a given task are allocated/deallocated

Todo

The number of arrays in the misc section should be reduced, and they should be located in the appropriate routines


Uses


Subroutines

public subroutine allocate_cell(flag, naez, nemb, natyp, cls, imt, irws, irns, ntcell, refpot, kfg, kaoez, rmt, zat, rws, mtfac, rmtref, rmtrefat, rmtnew, rbasis, lmxc, fpradius)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, geometry, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

u n i t

c e l l .

Read more…

Arguments

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

number of atoms in unit cell

integer, intent(in) :: nemb

number of 'embedding' positions

integer, intent(in) :: natyp

number of kinds of atoms in unit cell

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

Cluster around atomic sites

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

R point at MT radius

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

R point at WS radius

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

Position of atoms in the unit cell in units of bravais vectors

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

Index for WS cell

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

Ref. pot. card at position

integer, intent(inout), dimension (:, :), allocatable :: kfg
integer, intent(inout), dimension (:, :), allocatable :: kaoez

atom types located at a given site

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

Muffin-tin radius of true system

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

Nuclear charge

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

Wigner Seitz radius

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

Scaling factor for radius MT

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

Muffin-tin radius of reference system

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

Adapted muffin-tin radius

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

Position of atoms in the unit cell in units of bravais vectors

integer, intent(inout), dimension (:), allocatable :: lmxc
real(kind=dp), intent(inout), dimension (:), allocatable :: fpradius

R point at which full-potential treatment starts

public subroutine allocate_semi_inf_host(flag, nemb, tleft, tright)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, geometry, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

l e f t

a n d

r i g h t

h o s t

f o r

t h e

c a l c u l a t i o n

o f

s l a b s

Read more…

Arguments

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

number of 'embedding' positions

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

Vectors of the basis for the left host

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

vectors of the basis for the right host

public subroutine allocate_potential(flag, irm, natyp, npotd, ipand, nfund, lmxspd, lmpot, irmind, nspotd, nfu, irc, ncore, irmin, lmsp, lmsp1, ircut, lcore, llmsp, ititle, visp, ecore, vins)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, potential, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

p o t e n t i a l

Read more…

Arguments

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

number of kinds of atoms in unit cell

integer, intent(in) :: npotd

2*NATYP

integer, intent(in) :: ipand
integer, intent(in) :: nfund
integer, intent(in) :: lmxspd
integer, intent(in) :: lmpot
integer, intent(in) :: irmind
integer, intent(in) :: nspotd
integer, intent(inout), dimension (:), allocatable :: nfu
integer, intent(inout), dimension (:), allocatable :: irc

R point for potential cutting

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

Number of core states

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

Max R for spherical treatment

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

0,1 : non/-vanishing lm=(l,m) component of non-spherical potential

integer, intent(inout), dimension (:, :), allocatable :: lmsp1
integer, intent(inout), dimension (:, :), allocatable :: ircut

R points of panel borders

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

Angular momentum of core states

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

lm=(l,m) of 'nfund'th nonvanishing component of non-spherical pot.

integer, intent(inout), dimension (:, :), allocatable :: ititle
real(kind=dp), intent(inout), dimension (:, :), allocatable :: visp

Spherical part of the potential

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

Core energies

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

Non-spherical part of the potential

public subroutine allocate_cpa(flag, naez, natyp, noq, icpa, iqat, hostimp, conc)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, coherent-potential-approx, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

C P A

t r e a t m e n t

Read more…

Arguments

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

number of atoms in unit cell

integer, intent(in) :: natyp

number of kinds of atoms in unit cell

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

Number of diff. atom types located

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

ICPA = 0/1 site-dependent CPA flag

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

the site on which an atom is located on a given site

integer, intent(inout), dimension (:), allocatable :: hostimp
real(kind=dp), intent(inout), dimension (:), allocatable :: conc

concentration of a given atom

public subroutine allocate_ldau(flag, natyp, lopt, ueff, jeff, erefldau)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

L D A + U

a p p r o a c h

Read more…

Arguments

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

number of kinds of atoms in unit cell

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

angular momentum QNUM for the atoms on which LDA+U should be applied (-1 to switch it OFF)

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

input U parameter for each atom

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

input J parameter for each atom

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

the energies of the projector's wave functions (REAL)

public subroutine allocate_ldau_potential(flag, irm, natyp, mmaxd, nspind, itldau, wldau, uldau, phildau)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, potential, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

p o t e n t i a l s

f o r

t h e

L D A + U

a p p r o a c h

Read more…

Arguments

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

number of kinds of atoms in unit cell

integer, intent(in) :: mmaxd
integer, intent(in) :: nspind

Counter for spin directions (KREL+(1-KREL)*(KSP+1))

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

integer pointer connecting the NTLDAU atoms to their corresponding index in the unit cell

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

potential matrix

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

calculated Coulomb matrix elements (EREFLDAU)

complex(kind=dp), intent(inout), dimension (:, :), allocatable :: phildau

public subroutine allocate_magnetization(flag, naez, natyp, lmmaxd, inipol, ixipol, qmtet, qmphi, drotq)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

m a g n e t i z a t i o n

Read more…

Arguments

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

number of atoms in unit cell

integer, intent(in) :: natyp

number of kinds of atoms in unit cell

integer, intent(in) :: lmmaxd
integer, intent(inout), dimension (:), allocatable :: inipol

Initial spin polarisation

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

Constraint of spin pol.

real(kind=dp), intent(inout), dimension (:), allocatable :: qmtet
real(kind=dp), intent(inout), dimension (:), allocatable :: qmphi
complex(kind=dp), intent(inout), dimension (:, :, :), allocatable :: drotq

Rotation matrices to change between LOCAL/GLOBAL frame of reference for magnetisation <> Oz or noncollinearity

public subroutine allocate_soc(flag, krel, natyp, lmax, socscale, cscl, socscl)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, spin-orbit-coupling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

s p i n - o r b i t

c o u p l i n g

( S O C )

Read more…

Arguments

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

number of kinds of atoms in unit cell

integer, intent(in) :: lmax

Maximum l component in wave function expansion

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

Spin-orbit scaling

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

Speed of light scaling

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

public subroutine allocate_energies(flag, iemxd, ez, dez, wez)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, total-energy, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

e n e r g i e s

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: flag
integer, intent(in) :: iemxd
complex(kind=dp), intent(inout), dimension (:), allocatable :: ez
complex(kind=dp), intent(inout), dimension (:), allocatable :: dez
complex(kind=dp), intent(inout), dimension (:), allocatable :: wez

public subroutine allocate_relativistic(flag, krel, irm, naez, natyp, zrel, jwsrel, irshift, vtrel, btrel, rmrel, drdirel, r2drdirel, qmgam, qmgamtab, qmphitab, qmtettab)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

r e l a t i v i s t i c

c o r r e c t i o n s

Read more…

Arguments

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

number of atoms in unit cell

integer, intent(in) :: natyp

number of kinds of atoms in unit cell

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

atomic number (cast integer)

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

index of the WS radius

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

shift of the REL radial mesh with respect no NREL

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

potential (spherical part)

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

magnetic field

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

radial mesh

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

derivative of radial mesh

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

r**2 * drdi

real(kind=dp), intent(inout), dimension (:), allocatable :: qmgam
real(kind=dp), intent(inout), dimension (:, :), allocatable :: qmgamtab
real(kind=dp), intent(inout), dimension (:, :), allocatable :: qmphitab
real(kind=dp), intent(inout), dimension (:, :), allocatable :: qmtettab

public subroutine allocate_rel_transformations(flag, lmmaxd, nrrel, irrel, rc, crel, rrel, srrel)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, dirac, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

r e l a t i v i s t i c

t r a n s f o r m a t i o n s

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: flag
integer, intent(in) :: lmmaxd
integer, intent(inout), dimension (:, :), allocatable :: nrrel
integer, intent(inout), dimension (:, :, :), allocatable :: irrel
complex(kind=dp), intent(inout), dimension (:, :), allocatable :: rc

NREL REAL spher. harm. > CMPLX. spher. harm. NREL CMPLX. spher. harm. > REAL spher. harm.

complex(kind=dp), intent(inout), dimension (:, :), allocatable :: crel

Non-relat. CMPLX. spher. harm. > (kappa,mue) (kappa,mue) > non-relat. CMPLX. spher. harm.

complex(kind=dp), intent(inout), dimension (:, :), allocatable :: rrel

Non-relat. REAL spher. harm. > (kappa,mue) (kappa,mue) > non-relat. REAL spher. harm.

complex(kind=dp), intent(inout), dimension (:, :, :), allocatable :: srrel

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)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, geometry, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

c l u s t e r s

Read more…

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

public subroutine allocate_expansion(flag, lm2d, irid, nfund, ntotd, ncleb, lassld, ncelld, nchebd, loflm, wg, cleb, yrg, thetas, thetasnew)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, special-functions, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

f u n c t i o n s

f o r

t h e

e x p a n s i o n

o f

t h e

G r e e n

f u n c t i o n

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: flag
integer, intent(in) :: lm2d
integer, intent(in) :: irid
integer, intent(in) :: nfund
integer, intent(in) :: ntotd
integer, intent(in) :: ncleb
integer, intent(in) :: lassld
integer, intent(in) :: ncelld
integer, intent(in) :: nchebd
integer, intent(inout), dimension (:), allocatable :: loflm

l of lm=(l,m) (GAUNT)

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

Integr. weights for Legendre polynomials

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

GAUNT coefficients (GAUNT)

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

Spherical harmonics (GAUNT2)

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

shape function THETA=0 outer space THETA =1 inside WS cell in spherical harmonics expansion

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

public subroutine allocate_mesh(flag, irm, natyp, a, b, rmesh, drdi)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, radial-grid, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

i n t e g r a t i o n

m e s h

Read more…

Arguments

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

number of kinds of atoms in unit cell

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

Constants for exponential R mesh

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

Radial mesh ( in units a Bohr)

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

Derivative dr/di

public subroutine allocate_pannels(flag, natyp, ntotd, ipan, npan_tot, npan_eq_at, npan_log_at, ipan_intervall, rpan_intervall)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, radial-grid, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

t h a t

d e s c r i b e

t h e

p a n e l s

Read more…

Arguments

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

number of kinds of atoms in unit cell

integer, intent(in) :: ntotd

IPAND+30

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

Number of panels in non-MT-region

integer, intent(inout), dimension (:), allocatable :: npan_tot
integer, intent(inout), dimension (:), allocatable :: npan_eq_at
integer, intent(inout), dimension (:), allocatable :: npan_log_at
integer, intent(inout), dimension (:, :), allocatable :: ipan_intervall
real(kind=dp), intent(inout), dimension (:, :), allocatable :: rpan_intervall

public subroutine allocate_misc(flag, nr, irm, irid, lmax, naez, natyp, nfund, nrefd, iemxd, ntotd, nsheld, lmmaxd, nembd1, nchebd, ncelld, lmxspd, nspindd, nsymaxd, nprincd, ifunm, ifunm1, icheck, vref, s, rr, dror, rnew, rs, rrot, thesme, dsymll, dsymll1, lefttinvll, righttinvll)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

m i s c

a r r a y s

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: flag
integer, intent(in) :: nr
integer, intent(in) :: irm
integer, intent(in) :: irid
integer, intent(in) :: lmax

Maximum l component in wave function expansion

integer, intent(in) :: naez

number of atoms in unit cell

integer, intent(in) :: natyp

number of kinds of atoms in unit cell

integer, intent(in) :: nfund
integer, intent(in) :: nrefd
integer, intent(in) :: iemxd
integer, intent(in) :: ntotd
integer, intent(in) :: nsheld
integer, intent(in) :: lmmaxd
integer, intent(in) :: nembd1
integer, intent(in) :: nchebd
integer, intent(in) :: ncelld
integer, intent(in) :: lmxspd
integer, intent(in) :: nspindd
integer, intent(in) :: nsymaxd
integer, intent(in) :: nprincd
integer, intent(inout), dimension (:, :), allocatable :: ifunm
integer, intent(inout), dimension (:, :), allocatable :: ifunm1
integer, intent(inout), dimension (:, :), allocatable :: icheck
real(kind=dp), intent(inout), dimension (:), allocatable :: vref
real(kind=dp), intent(inout), dimension (:, :), allocatable :: s
real(kind=dp), intent(inout), dimension (:, :), allocatable :: rr

Set of real space vectors (in a.u.)

real(kind=dp), intent(inout), dimension (:, :), allocatable :: dror
real(kind=dp), intent(inout), dimension (:, :), allocatable :: rnew
real(kind=dp), intent(inout), dimension (:, :, :), allocatable :: rs
real(kind=dp), intent(inout), dimension (:, :, :), allocatable :: rrot
real(kind=dp), intent(inout), dimension (:, :, :), allocatable :: thesme
complex(kind=dp), intent(inout), dimension (:, :, :), allocatable :: dsymll
complex(kind=dp), intent(inout), dimension (:, :, :), allocatable :: dsymll1
complex(kind=dp), intent(inout), dimension (:, :, :, :, :), allocatable :: lefttinvll
complex(kind=dp), intent(inout), dimension (:, :, :, :, :), allocatable :: righttinvll

public subroutine allocate_green(flag, naez, iemxd, ngshd, nsheld, lmpot, nofgijd, ish, jsh, kmesh, imaxsh, iqcalc, iofgij, jofgij, ijtabsh, ijtabsym, ijtabcalc, ijtabcalc_i, ilm_map, gsh)

Author
Jonathan Chico
License
Creative Commons License
Category
profiling, profiling, KKRhost

s u b r o u t i n e

h a n d l i n g

t h e

a l l o c a t i o n / d e a l l o c a t i o n

o f

a r r a y s

h a n d l i n g

t h e

G r e e n

f u n c t i o n s

Read more…

Arguments

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

number of atoms in unit cell

integer, intent(in) :: iemxd
integer, intent(in) :: ngshd
integer, intent(in) :: nsheld
integer, intent(in) :: lmpot
integer, intent(in) :: nofgijd
integer, intent(inout), dimension (:,:), allocatable :: ish
integer, intent(inout), dimension (:,:), allocatable :: jsh
integer, intent(inout), dimension (:), allocatable :: kmesh
integer, intent(inout), dimension (:), allocatable :: imaxsh
integer, intent(inout), dimension (:), allocatable :: iqcalc
integer, intent(inout), dimension (:), allocatable :: iofgij

Linear pointers, similar to NSH1/NSH2 but giving the actual index of sites I,J = 1,NATOMIMP in the cluster

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

Linear pointers, similar to NSH1/NSH2 but giving the actual index of sites I,J = 1,NATOMIMP in the cluster

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

Linear pointer, assigns pair (i,j) to a shell in the array GS(,,*,NSHELD)

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

Linear pointer, assigns pair (i,j) to the rotation bringing GS into Gij

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

Linear pointer,specifying whether the block (i,j) has to be calculated needs set up for ICC=-1, not used for ICC=1

integer, intent(inout), dimension (:), allocatable :: ijtabcalc_i
integer, intent(inout), dimension (:,:), allocatable :: ilm_map
real(kind=dp), intent(inout), dimension (:), allocatable :: gsh