Calculation of the exchange interaction tensor via the method of infinitesimal rotations. In this subroutine it is possible to obtain both the Heisenberg exchange constants and the Dzyaloshinskii-Moriya vectors.
C a l c u l a t i o n
o f
t h e
e x c h a n g e
i n t e r a c t i o n
t e n s o r .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | naezd |
Number of atoms in unit cell |
||
integer, | intent(in) | :: | natypd |
Number of kinds of atoms in unit cell |
||
integer, | intent(in) | :: | lmmaxd |
(KREL+KORBIT+1)(LMAX+1)*2 |
||
integer, | intent(in) | :: | lmgf0d |
(lmax+1)**2 |
||
integer, | intent(in) | :: | natomimpd |
Size of the cluster for impurity-calculation output of GF should be 1, if you don't do such a calculation |
||
integer, | intent(in) | :: | iemxd |
Dimension for energy-dependent arrays |
||
real(kind=dp), | intent(in), | dimension (natypd) | :: | thetas | ||
real(kind=dp), | intent(in), | dimension (natypd) | :: | phis | ||
integer, | intent(in) | :: | natomimp |
Size of the cluster for impurity-calculation output of GF should be 1, if you don't do such a calculation |
||
integer, | intent(in), | dimension (natomimpd) | :: | atomimp | ||
integer, | intent(in) | :: | nofgijd |
NATOMIMPD*NATOMIMPD+1 |
||
integer, | intent(in), | dimension (natypd) | :: | iqat |
The site on which an atom is located on a given site |
|
real(kind=dp), | intent(in), | dimension (3, natomimpd) | :: | rclsimp | ||
integer, | intent(in), | dimension (nofgijd) | :: | 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(in), | dimension (nofgijd) | :: | ijtabcalc_i | ||
integer, | intent(in), | dimension (nofgijd) | :: | ijtabsh |
Linear pointer, assigns pair (i,j) to a shell in the array GS(,,*,NSHELD) |
|
integer, | intent(in), | dimension (nofgijd) | :: | ijtabsym |
Linear pointer, assigns pair (i,j) to the rotation bringing GS into Gij |
|
integer, | intent(in) | :: | ielast | |||
complex(kind=dp), | intent(in), | dimension (iemxd) | :: | ez | ||
complex(kind=dp), | intent(in), | dimension (iemxd) | :: | wez | ||
integer, | intent(in) | :: | npol |
Number of poles |
||
complex(kind=dp), | intent(in), | dimension (lmmaxd, lmmaxd, nsymaxd) | :: | dsymll | ||
integer, | intent(in), | dimension (naezd) | :: | noq |
Number of diff. atom types located |
|
integer, | intent(in), | dimension (natypd, naezd) | :: | itoq | ||
integer, | intent(in) | :: | ncpa |
NCPA = 0/1 CPA flag |
S o r t i n g
o f
a n
a r r a y
m a k i n g
u s e
o f
t h e
b u b b l e
s o r t
a p p r o a c h
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | n | |||
real(kind=dp), | intent(in), | dimension(n) | :: | xin | ||
integer, | intent(out), | dimension(n) | :: | iout |