Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
51
Issues
51
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
5ddabb32
Commit
5ddabb32
authored
Nov 13, 2019
by
Alexander Neukirchen
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'source_free' of iffgit.fz-juelich.de:fleur/fleur into source_free
parents
5c6ae6b5
4d561576
Changes
34
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
309 additions
and
149 deletions
+309
-149
cdn/m_perp.f90
cdn/m_perp.f90
+4
-3
cdn_mt/cdnmt.F90
cdn_mt/cdnmt.F90
+2
-2
eigen/hsmt_ab.F90
eigen/hsmt_ab.F90
+1
-1
eigen/hsmt_fjgj.F90
eigen/hsmt_fjgj.F90
+1
-1
eigen/hsmt_mtNocoPot_offdiag.F90
eigen/hsmt_mtNocoPot_offdiag.F90
+2
-2
eigen/hsmt_nonsph.F90
eigen/hsmt_nonsph.F90
+1
-0
init/initParallelProcesses.F90
init/initParallelProcesses.F90
+1
-1
init/old_inp/dimen7.F90
init/old_inp/dimen7.F90
+2
-2
init/old_inp/fleur_init_old.F90
init/old_inp/fleur_init_old.F90
+1
-1
inpgen/set_inp.f90
inpgen/set_inp.f90
+6
-4
io/cdn_io.F90
io/cdn_io.F90
+10
-7
io/cdnpot_io_hdf.F90
io/cdnpot_io_hdf.F90
+101
-38
io/pot_io.F90
io/pot_io.F90
+6
-4
io/r_inpXML.F90
io/r_inpXML.F90
+14
-8
io/rw_inp.f90
io/rw_inp.f90
+5
-4
io/w_inpXML.f90
io/w_inpXML.f90
+6
-6
io/writeBasis.F90
io/writeBasis.F90
+3
-3
io/xml/FleurInputSchema.xsd
io/xml/FleurInputSchema.xsd
+4
-1
main/cdngen.F90
main/cdngen.F90
+1
-1
main/fleur.F90
main/fleur.F90
+14
-14
main/mix.F90
main/mix.F90
+2
-2
main/totale.f90
main/totale.f90
+1
-1
mix/stdmix.f90
mix/stdmix.f90
+4
-1
mpi/mpi_bc_all.F90
mpi/mpi_bc_all.F90
+3
-1
optional/bmt.f90
optional/bmt.f90
+1
-1
optional/cdnsp.f90
optional/cdnsp.f90
+2
-2
optional/flipcdn.f90
optional/flipcdn.f90
+81
-20
optional/stden.f90
optional/stden.f90
+1
-1
rdmft/rdmft.F90
rdmft/rdmft.F90
+2
-2
types/types_setup.F90
types/types_setup.F90
+4
-1
vgen/mt_tofrom_grid.F90
vgen/mt_tofrom_grid.F90
+1
-1
vgen/rotate_mt_den_tofrom_local.f90
vgen/rotate_mt_den_tofrom_local.f90
+4
-3
vgen/vgen_finalize.F90
vgen/vgen_finalize.F90
+12
-8
vgen/vgen_xcpot.F90
vgen/vgen_xcpot.F90
+6
-2
No files found.
cdn/m_perp.f90
View file @
5ddabb32
...
...
@@ -36,7 +36,7 @@ CONTAINS
! .. Local Scalars ..
INTEGER
iri
REAL
b_xavh
,
scale
,
b_con_outx
,
b_con_outy
,
mx
,
my
,
mz
,&
&
alphh
,
betah
,
mz_tmp
,
mx_mix
,
my_mix
,
mz_mix
&
alphh
,
betah
,
mz_tmp
,
mx_mix
,
my_mix
,
mz_mix
,
absmag
REAL
rho11
,
rho22
,
alphdiff
COMPLEX
rho21
! ..
...
...
@@ -56,11 +56,12 @@ CONTAINS
mx
=
2
*
REAL
(
qa21
(
itype
))
my
=
2
*
AIMAG
(
qa21
(
itype
))
mz
=
chmom
(
itype
,
1
)
-
chmom
(
itype
,
2
)
WRITE
(
6
,
8025
)
mx
,
my
absmag
=
SQRT
(
mx
*
mx
+
my
*
my
+
mz
*
mz
)
WRITE
(
6
,
8025
)
mx
,
my
,
mz
,
absmag
!---> determine the polar angles of the moment vector in the local frame
CALL
sphcoord
(
mx
,
my
,
mz
,
betah
,
alphh
)
WRITE
(
6
,
8026
)
betah
,
alphh
8025
FORMAT
(
2x
,
'--> local frame: '
,
'mx='
,
f9.5
,
' my='
,
f9.5
)
8025
FORMAT
(
2x
,
'--> local frame: '
,
'mx='
,
f9.5
,
' my='
,
f9.5
,
' mz='
,
f9.5
,
' |m|='
,
f9.5
)
8026
FORMAT
(
2x
,
'-->'
,
10x
,
' delta beta='
,
f9.5
,
&
&
' delta alpha='
,
f9.5
)
...
...
cdn_mt/cdnmt.F90
View file @
5ddabb32
...
...
@@ -191,7 +191,7 @@ CONTAINS
!rho21(j,0,itype) = rho21(j,0,itype)+ conjg(cs)/(atoms%neq(itype)*sfp_const)
rho21
=
CONJG
(
cs
)/(
atoms
%
neq
(
itype
)
*
sfp_const
)
rho
(
j
,
0
,
itype
,
3
)
=
rho
(
j
,
0
,
itype
,
3
)
+
REAL
(
rho21
)
rho
(
j
,
0
,
itype
,
4
)
=
rho
(
j
,
0
,
itype
,
4
)
+
imag
(
rho21
)
rho
(
j
,
0
,
itype
,
4
)
=
rho
(
j
,
0
,
itype
,
4
)
+
a
imag
(
rho21
)
ENDDO
ENDDO
...
...
@@ -210,7 +210,7 @@ CONTAINS
!rho21(j,lh,itype)= rho21(j,lh,itype)+ CONJG(cs)/atoms%neq(itype)
rho21
=
CONJG
(
cs
)/
atoms
%
neq
(
itype
)
rho
(
j
,
lh
,
itype
,
3
)
=
rho
(
j
,
lh
,
itype
,
3
)
+
REAL
(
rho21
)
rho
(
j
,
lh
,
itype
,
4
)
=
rho
(
j
,
lh
,
itype
,
4
)
+
imag
(
rho21
)
rho
(
j
,
lh
,
itype
,
4
)
=
rho
(
j
,
lh
,
itype
,
4
)
+
a
imag
(
rho21
)
ENDDO
ENDDO
ENDDO
...
...
eigen/hsmt_ab.F90
View file @
5ddabb32
...
...
@@ -198,7 +198,7 @@ CONTAINS
REAL
,
ALLOCATABLE
::
gkrot
(:,:)
LOGICAL
::
l_apw
ALLOCATE
(
c_ph
(
maxval
(
lapw
%
nv
),
MERGE
(
2
,
1
,
noco
%
l_ss
)))
ALLOCATE
(
c_ph
(
maxval
(
lapw
%
nv
),
MERGE
(
2
,
1
,
noco
%
l_ss
.or.
noco
%
l_mtNocoPot
)))
ALLOCATE
(
gkrot
(
3
,
maxval
(
lapw
%
nv
)))
lmax
=
MERGE
(
atoms
%
lnonsph
(
n
),
atoms
%
lmax
(
n
),
l_nonsph
)
...
...
eigen/hsmt_fjgj.F90
View file @
5ddabb32
...
...
@@ -169,7 +169,7 @@ CONTAINS
fj
(
k
,
l
,
ispin
,
intspin
)
=
1.0
*
con1
*
ff
/
usdus
%
us
(
l
,
n
,
ispin
)
gj
(
k
,
l
,
ispin
,
intspin
)
=
0.0
ELSE
IF
(
noco
%
l_constr
.or.
l_socfirst
)
THEN
IF
(
noco
%
l_constr
.or.
l_socfirst
.OR.
noco
%
l_mtNocoPot
)
THEN
DO
jspin
=
1
,
input
%
jspins
fj
(
k
,
l
,
jspin
,
intspin
)
=
ws
(
jspin
)
*
(
usdus
%
uds
(
l
,
n
,
jspin
)
*
gg
-
usdus
%
duds
(
l
,
n
,
jspin
)
*
ff
)
gj
(
k
,
l
,
jspin
,
intspin
)
=
ws
(
jspin
)
*
(
usdus
%
dus
(
l
,
n
,
jspin
)
*
ff
-
usdus
%
us
(
l
,
n
,
jspin
)
*
gg
)
...
...
eigen/hsmt_mtNocoPot_offdiag.F90
View file @
5ddabb32
...
...
@@ -41,7 +41,7 @@ CONTAINS
CALL
hmat_tmp
%
clear
()
!The spin1,2 matrix is calculated(real part of potential)
CALL
hsmt_nonsph
(
n
,
mpi
,
sym
,
atoms
,
3
,
1
,
1
,
chi_one
,
noco
,
cell
,
lapw
,
td
,&
fj
(:,
0
:,
1
,:),
gj
(:,
0
:,
2
,:),
hmat_tmp
)
fj
(:,
0
:,
1
,:),
gj
(:,
0
:,
1
,:),
hmat_tmp
)
CALL
hsmt_spinor
(
3
,
n
,
noco
,
chi
)
!spinor for off-diagonal part
CALL
hsmt_distspins
(
chi
,
hmat_tmp
,
hmat
)
...
...
@@ -56,7 +56,7 @@ CONTAINS
!The spin1,2 matrix is calculated(imag part of potential)
chi_one
=
CMPLX
(
0.
,
1.
)
CALL
hsmt_nonsph
(
n
,
mpi
,
sym
,
atoms
,
4
,
1
,
1
,
chi_one
,
noco
,
cell
,
lapw
,
td
,&
fj
(:,
0
:,
1
,:),
gj
(:,
0
:,
2
,:),
hmat_tmp
)
fj
(:,
0
:,
1
,:),
gj
(:,
0
:,
1
,:),
hmat_tmp
)
CALL
hsmt_spinor
(
3
,
n
,
noco
,
chi
)
CALL
hsmt_distspins
(
chi
,
hmat_tmp
,
hmat
)
...
...
eigen/hsmt_nonsph.F90
View file @
5ddabb32
...
...
@@ -201,6 +201,7 @@ CONTAINS
CALL
ZHERK
(
"U"
,
"N"
,
lapw
%
nv
(
iintsp
),
ab_size
,
Rchi
,
CONJG
(
ab1
),
SIZE
(
ab1
,
1
),
1.0
,
hmat
%
data_c
,
SIZE
(
hmat
%
data_c
,
1
))
ELSE
!This is the case of a local off-diagonal contribution.
!It is not Hermitian, so we need to USE zgemm CALL
CALL
hsmt_ab
(
sym
,
atoms
,
noco
,
isp
,
2
,
n
,
na
,
cell
,
lapw
,
fj
,
gj
,
ab
,
ab_size
,
.TRUE.
)
CALL
zgemm
(
"N"
,
"T"
,
lapw
%
nv
(
iintsp
),
lapw
%
nv
(
jintsp
),
ab_size
,
chi
,
CONJG
(
ab
),
SIZE
(
ab
,
1
),&
ab1
,
SIZE
(
ab1
,
1
),
CMPLX
(
1.0
,
0.0
),
hmat
%
data_c
,
SIZE
(
hmat
%
data_c
,
1
))
ENDIF
...
...
init/initParallelProcesses.F90
View file @
5ddabb32
...
...
@@ -104,7 +104,7 @@ SUBROUTINE initParallelProcesses(atoms,vacuum,input,stars,sliceplot,banddos,&
ALLOCATE
(
atoms
%
jri
(
atoms
%
ntype
),
atoms
%
dx
(
atoms
%
ntype
),
atoms
%
rmt
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
lmax
(
atoms
%
ntype
),
atoms
%
nlo
(
atoms
%
ntype
),
atoms
%
lnonsph
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
ncst
(
atoms
%
ntype
),
atoms
%
lda_u
(
4
*
atoms
%
ntype
))
ALLOCATE
(
atoms
%
nflip
(
atoms
%
ntype
),
atoms
%
bmu
(
atoms
%
ntype
),
atoms
%
neq
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
bmu
(
atoms
%
ntype
),
atoms
%
neq
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
l_geo
(
atoms
%
ntype
),
atoms
%
relax
(
3
,
atoms
%
ntype
))
ALLOCATE
(
atoms
%
taual
(
3
,
atoms
%
nat
),
atoms
%
pos
(
3
,
atoms
%
nat
))
ALLOCATE
(
atoms
%
numStatesProvided
(
atoms
%
ntype
))
...
...
init/old_inp/dimen7.F90
View file @
5ddabb32
...
...
@@ -99,7 +99,7 @@
ALLOCATE
(&
&
atoms
%
lmax
(
atoms
%
ntype
),
atoms
%
ntypsy
(
atoms
%
nat
),
atoms
%
neq
(
atoms
%
ntype
),
atoms
%
nlhtyp
(
atoms
%
ntype
),&
&
atoms
%
rmt
(
atoms
%
ntype
),
atoms
%
zatom
(
atoms
%
ntype
),
atoms
%
jri
(
atoms
%
ntype
),
atoms
%
dx
(
atoms
%
ntype
),
&
&
atoms
%
nlo
(
atoms
%
ntype
),
atoms
%
llo
(
atoms
%
nlod
,
atoms
%
ntype
),
atoms
%
nflip
(
atoms
%
ntype
),
atoms
%
bmu
(
atoms
%
ntype
),&
&
atoms
%
nlo
(
atoms
%
ntype
),
atoms
%
llo
(
atoms
%
nlod
,
atoms
%
ntype
),
atoms
%
bmu
(
atoms
%
ntype
),&
&
noel
(
atoms
%
ntype
),
vacuum
%
izlay
(
vacuum
%
layerd
,
2
),
atoms
%
ncst
(
atoms
%
ntype
),
atoms
%
lnonsph
(
atoms
%
ntype
),&
&
atoms
%
taual
(
3
,
atoms
%
nat
),
atoms
%
pos
(
3
,
atoms
%
nat
),&
&
atoms
%
nz
(
atoms
%
ntype
),
atoms
%
relax
(
3
,
atoms
%
ntype
),&
...
...
@@ -359,7 +359,7 @@
CALL
parawrite
(
sym
,
stars
,
atoms
,
sphhar
,
DIMENSION
,
vacuum
,
obsolete
,
kpts
,
oneD
,
input
)
DEALLOCATE
(
sym
%
mrot
,
sym
%
tau
,&
&
atoms
%
lmax
,
atoms
%
ntypsy
,
atoms
%
neq
,
atoms
%
nlhtyp
,
atoms
%
rmt
,
atoms
%
zatom
,
atoms
%
jri
,
atoms
%
dx
,
atoms
%
nlo
,
atoms
%
llo
,
atoms
%
nflip
,
atoms
%
bmu
,
noel
,&
&
atoms
%
lmax
,
atoms
%
ntypsy
,
atoms
%
neq
,
atoms
%
nlhtyp
,
atoms
%
rmt
,
atoms
%
zatom
,
atoms
%
jri
,
atoms
%
dx
,
atoms
%
nlo
,
atoms
%
llo
,
atoms
%
bmu
,
noel
,&
&
vacuum
%
izlay
,
atoms
%
ncst
,
atoms
%
lnonsph
,
atoms
%
taual
,
atoms
%
pos
,
atoms
%
nz
,
atoms
%
relax
,&
&
atoms
%
l_geo
,
noco
%
alph
,
noco
%
beta
,
atoms
%
lda_u
,
noco
%
l_relax
,
noco
%
b_con
,
sphhar
%
clnu
,
sphhar
%
nlh
,&
&
sphhar
%
llh
,
sphhar
%
nmem
,
sphhar
%
mlh
,
hybrid
%
select1
,
hybrid
%
lcutm1
,&
...
...
init/old_inp/fleur_init_old.F90
View file @
5ddabb32
...
...
@@ -100,7 +100,7 @@ CONTAINS
ALLOCATE
(
atoms
%
ncv
(
atoms
%
ntype
),
atoms
%
neq
(
atoms
%
ntype
),
atoms
%
ngopr
(
atoms
%
nat
)
)
ALLOCATE
(
sphhar
%
nlh
(
sphhar
%
ntypsd
),
sphhar
%
nmem
(
0
:
sphhar
%
nlhd
,
sphhar
%
ntypsd
)
)
ALLOCATE
(
stars
%
nstr2
(
stars
%
ng2
),
atoms
%
ntypsy
(
atoms
%
nat
),
stars
%
nstr
(
stars
%
ng3
)
)
ALLOCATE
(
stars
%
igfft
(
0
:
stars
%
kimax
,
2
),
stars
%
igfft2
(
0
:
stars
%
kimax2
,
2
)
,
atoms
%
nflip
(
atoms
%
ntype
)
)
ALLOCATE
(
stars
%
igfft
(
0
:
stars
%
kimax
,
2
),
stars
%
igfft2
(
0
:
stars
%
kimax2
,
2
))
ALLOCATE
(
atoms
%
ncst
(
atoms
%
ntype
)
)
ALLOCATE
(
vacuum
%
izlay
(
vacuum
%
layerd
,
2
)
)
ALLOCATE
(
sym
%
invarop
(
atoms
%
nat
,
sym
%
nop
),
sym
%
invarind
(
atoms
%
nat
)
)
...
...
inpgen/set_inp.f90
View file @
5ddabb32
...
...
@@ -118,7 +118,9 @@
ALLOCATE
(
atoms
%
llo
(
atoms
%
nlod
,
atoms
%
ntype
))
ALLOCATE
(
atoms
%
ncst
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
lnonsph
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
nflip
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinPhi
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinScale
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinTheta
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
l_geo
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
lda_u
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
bmu
(
atoms
%
ntype
))
...
...
@@ -139,7 +141,7 @@
input
%
l_bmt
=
.false.
;
input
%
eonly
=
.false.
input
%
gauss
=
.false.
;
input
%
tria
=
.false.
sliceplot
%
slice
=
.false.
;
input
%
swsp
=
.false.
input
%
lflip
=
.false.
;
banddos
%
vacdos
=
.false.
;
input
%
integ
=
.false.
input
%
lflip
=
.false.
;
input
%
l_removeMagnetisationFromInterstitial
=
.FALSE.
;
banddos
%
vacdos
=
.false.
;
input
%
integ
=
.false.
sliceplot
%
iplot
=
0
input
%
pallst
=
.false.
;
obsolete
%
lwb
=
.false.
;
vacuum
%
starcoeff
=
.false.
input
%
strho
=
.false.
;
input
%
l_f
=
.false.
;
atoms
%
l_geo
(:)
=
.true.
...
...
@@ -150,7 +152,7 @@
sliceplot
%
kk
=
0
;
sliceplot
%
nnne
=
0
;
vacuum
%
nstars
=
0
;
vacuum
%
nstm
=
0
nu
=
5
;
vacuum
%
layerd
=
1
;
iofile
=
6
ALLOCATE
(
vacuum
%
izlay
(
vacuum
%
layerd
,
2
))
banddos
%
ndir
=
0
;
vacuum
%
layers
=
0
;
atoms
%
nflip
(:)
=
1
;
vacuum
%
izlay
(:,:)
=
0
banddos
%
ndir
=
0
;
vacuum
%
layers
=
0
;
vacuum
%
izlay
(:,:)
=
0
banddos
%
e_mcd_lo
=
-10.0
;
banddos
%
e_mcd_up
=
0.0
atoms
%
lda_u
%
l
=
-1
;
atoms
%
relax
(
1
:
2
,:)
=
1
;
atoms
%
relax
(:,:)
=
1
input
%
epsdisp
=
0.00001
;
input
%
epsforce
=
0.00001
;
input
%
forcealpha
=
1.0
;
input
%
forcemix
=
2
! BFGS is default.
...
...
@@ -163,7 +165,7 @@
input
%
l_wann
=
.FALSE.
input
%
numBandsKPoints
=
240
banddos
%
unfoldband
=
.FALSE.
;
banddos
%
s_cell_x
=
1
;
banddos
%
s_cell_y
=
1
;
banddos
%
s_cell_z
=
1
atoms
%
flipSpinTheta
(:)
=
0.0
;
atoms
%
flipSpinPhi
(:)
=
0.0
;
atoms
%
flipSpinScale
=
.FALSE.
!+odim
oneD
%
odd
%
mb
=
0
;
oneD
%
odd
%
M
=
0
;
oneD
%
odd
%
m_cyl
=
0
;
oneD
%
odd
%
chi
=
0
;
oneD
%
odd
%
rot
=
0
oneD
%
odd
%
k3
=
0
;
oneD
%
odd
%
n2d
=
0
;
oneD
%
odd
%
nq2
=
0
;
oneD
%
odd
%
nn2d
=
0
...
...
io/cdn_io.F90
View file @
5ddabb32
...
...
@@ -132,7 +132,7 @@ MODULE m_cdn_io
END
SUBROUTINE
printDensityFileInfo
SUBROUTINE
readDensity
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
SUBROUTINE
readDensity
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
relCdnIndex
,
fermiEnergy
,
l_qfix
,
den
,
inFilename
)
TYPE
(
t_stars
),
INTENT
(
IN
)
::
stars
...
...
@@ -142,6 +142,7 @@ MODULE m_cdn_io
TYPE
(
t_sphhar
),
INTENT
(
IN
)
::
sphhar
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_sym
),
INTENT
(
IN
)
::
sym
TYPE
(
t_noco
),
INTENT
(
IN
)
::
noco
TYPE
(
t_oneD
),
INTENT
(
IN
)
::
oneD
TYPE
(
t_potden
),
INTENT
(
INOUT
)
::
den
...
...
@@ -230,12 +231,12 @@ MODULE m_cdn_io
currentStepfunctionIndex
,
readDensityIndex
,
lastDensityIndex
,
inFilename
)
CALL
readDensityHDF
(
fileID
,
input
,
stars
,
sphhar
,
atoms
,
vacuum
,
oneD
,
archiveName
,
densityType
,&
fermiEnergy
,
l_qfix
,
l_DimChange
,
den
)
fermiEnergy
,
l_qfix
,
l_DimChange
,
den
,
noco
%
l_mtNocoPot
)
CALL
closeCDNPOT_HDF
(
fileID
)
IF
(
l_DimChange
)
THEN
CALL
writeDensity
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
CALL
writeDensity
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
1
,
-1.0
,
fermiEnergy
,
l_qfix
,
den
)
END
IF
ELSE
...
...
@@ -363,9 +364,10 @@ MODULE m_cdn_io
END
SUBROUTINE
readDensity
SUBROUTINE
writeDensity
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
SUBROUTINE
writeDensity
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
inOrOutCDN
,&
relCdnIndex
,
distance
,
fermiEnergy
,
l_qfix
,
den
,
inFilename
)
TYPE
(
t_noco
),
INTENT
(
IN
)
::
noco
TYPE
(
t_stars
),
INTENT
(
IN
)
::
stars
TYPE
(
t_vacuum
),
INTENT
(
IN
)
::
vacuum
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
...
...
@@ -384,6 +386,7 @@ MODULE m_cdn_io
CHARACTER
(
LEN
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
inFilename
TYPE
(
t_stars
)
::
starsTemp
TYPE
(
t_vacuum
)
::
vacuumTemp
TYPE
(
t_atoms
)
::
atomsTemp
...
...
@@ -497,7 +500,7 @@ MODULE m_cdn_io
CALL
writeDensityHDF
(
input
,
fileID
,
archiveName
,
densityType
,
previousDensityIndex
,&
currentStarsIndex
,
currentLatharmsIndex
,
currentStructureIndex
,&
currentStepfunctionIndex
,
date
,
time
,
distance
,
fermiEnergy
,
l_qfix
,&
den
%
iter
+
relCdnIndex
,
den
)
den
%
iter
+
relCdnIndex
,
den
,
noco
%
l_mtNocoPot
)
IF
(
l_storeIndices
)
THEN
CALL
writeCDNHeaderData
(
fileID
,
currentStarsIndex
,
currentLatharmsIndex
,
currentStructureIndex
,&
...
...
@@ -984,7 +987,7 @@ MODULE m_cdn_io
archiveType
=
MERGE
(
CDN_ARCHIVE_TYPE_NOCO_const
,
CDN_ARCHIVE_TYPE_CDN1_const
,
noco
%
l_noco
)
!read the current density
CALL
den
%
init
(
stars
,
atoms
,
sphhar
,
vacuum
,
noco
,
input
%
jspins
,
POTDEN_TYPE_DEN
)
CALL
readDensity
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
CDN_INPUT_DEN_const
,&
CALL
readDensity
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
CDN_INPUT_DEN_const
,&
0
,
fermiEnergy
,
l_qfix
,
den
)
ENDIF
!Now fix the density
...
...
@@ -1002,7 +1005,7 @@ MODULE m_cdn_io
CALL
judft_error
(
"Wrong choice of qfix in input"
)
END
SELECT
!Now write the density to file
IF
(
mpi
%
irank
==
0
)
CALL
writedensity
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
CDN_INPUT_DEN_const
,&
IF
(
mpi
%
irank
==
0
)
CALL
writedensity
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,
CDN_INPUT_DEN_const
,&
0
,
-1.0
,
fermiEnergy
,
l_qfix
,
den
)
#endif
...
...
io/cdnpot_io_hdf.F90
View file @
5ddabb32
...
...
@@ -1539,7 +1539,7 @@ MODULE m_cdnpot_io_hdf
SUBROUTINE
writeDensityHDF
(
input
,
fileID
,
archiveName
,
densityType
,
previousDensityIndex
,&
starsIndex
,
latharmsIndex
,
structureIndex
,
stepfunctionIndex
,&
date
,
time
,
distance
,
fermiEnergy
,
l_qfix
,
iter
,
den
)
date
,
time
,
distance
,
fermiEnergy
,
l_qfix
,
iter
,
den
,
l_mtNoco
)
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_potden
),
INTENT
(
IN
)
::
den
...
...
@@ -1552,6 +1552,7 @@ MODULE m_cdnpot_io_hdf
INTEGER
,
INTENT
(
IN
)
::
date
,
time
,
iter
REAL
,
INTENT
(
IN
)
::
fermiEnergy
,
distance
LOGICAL
,
INTENT
(
IN
)
::
l_qfix
LOGICAL
,
INTENT
(
IN
)
::
l_mtNoco
INTEGER
::
i
,
iVac
INTEGER
::
ntype
,
jmtd
,
nmzd
,
nmzxyd
,
nlhd
,
ng3
,
ng2
...
...
@@ -1690,7 +1691,7 @@ MODULE m_cdnpot_io_hdf
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
(:,:,:,:
input
%
jspins
)
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
dimsInt
(:
3
)
=
(/
2
,
ng3
,
input
%
jspins
/)
...
...
@@ -1751,15 +1752,25 @@ MODULE m_cdnpot_io_hdf
CALL
io_write_attreal0
(
groupID
,
'fermiEnergy'
,
fermiEnergy
)
CALL
io_write_attlog0
(
groupID
,
'l_qfix'
,
l_qfix
)
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
IF
(
.NOT.
l_mtNoco
)
THEN
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
(:,:,:,:
input
%
jspins
))
CALL
h5dclose_f
(
frSetID
,
hdfError
)
ELSE
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
+2
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
(:,:,:,:
4
))
CALL
h5dclose_f
(
frSetID
,
hdfError
)
END
IF
dims
(:
3
)
=
(/
2
,
ng3
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
3
,
dims
(:
3
),
fpwSpaceID
,
hdfError
)
...
...
@@ -1856,13 +1867,23 @@ MODULE m_cdnpot_io_hdf
CALL
io_write_attreal0
(
groupID
,
'fermiEnergy'
,
fermiEnergy
)
CALL
io_write_attlog0
(
groupID
,
'l_qfix'
,
l_qfix
)
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
IF
(
.NOT.
l_mtNoco
)
THEN
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
(:,:,:,:
input
%
jspins
))
CALL
h5dclose_f
(
frSetID
,
hdfError
)
ELSE
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
+2
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
den
%
mt
(:,:,:,:
4
))
CALL
h5dclose_f
(
frSetID
,
hdfError
)
END
IF
dims
(:
3
)
=
(/
2
,
ng3
,
input
%
jspins
/)
dimsInt
=
dims
...
...
@@ -1946,7 +1967,7 @@ MODULE m_cdnpot_io_hdf
SUBROUTINE
writePotentialHDF
(
input
,
fileID
,
archiveName
,
potentialType
,&
starsIndex
,
latharmsIndex
,
structureIndex
,
stepfunctionIndex
,&
iter
,
pot
,
fpw
)
iter
,
pot
,
fpw
,
l_mtNoco
)
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_potden
),
INTENT
(
IN
)
::
pot
...
...
@@ -1959,7 +1980,7 @@ MODULE m_cdnpot_io_hdf
INTEGER
,
INTENT
(
IN
)
::
iter
COMPLEX
,
INTENT
(
IN
)
::
fpw
(:,:)
LOGICAL
,
INTENT
(
IN
)
::
l_mtNoco
INTEGER
::
ntype
,
jmtd
,
nmzd
,
nmzxyd
,
nlhd
,
ng3
,
ng2
INTEGER
::
nmz
,
nvac
,
od_nq2
,
nmzxy
INTEGER
::
hdfError
...
...
@@ -2092,6 +2113,8 @@ MODULE m_cdnpot_io_hdf
ELSE
CALL
h5gcreate_f
(
fileID
,
TRIM
(
ADJUSTL
(
groupName
)),
groupID
,
hdfError
)
IF
(
.NOT.
l_mtNoco
)
THEN
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
...
...
@@ -2099,6 +2122,15 @@ MODULE m_cdnpot_io_hdf
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
pot
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
ELSE
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
+2
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
pot
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
END
IF
dims
(:
3
)
=
(/
2
,
ng3
,
input
%
jspins
/)
dimsInt
=
dims
...
...
@@ -2141,14 +2173,25 @@ MODULE m_cdnpot_io_hdf
CALL
io_write_attint0
(
archiveID
,
'iter'
,
iter
)
CALL
h5gcreate_f
(
fileID
,
TRIM
(
ADJUSTL
(
groupName
)),
groupID
,
hdfError
)
IF
(
.NOT.
l_mtNoco
)
THEN
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
pot
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
ELSE
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
+2
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
pot
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
END
IF
dims
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
input
%
jspins
/)
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
frSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
groupID
,
"fr"
,
H5T_NATIVE_DOUBLE
,
frSpaceID
,
frSetID
,
hdfError
)
CALL
h5sclose_f
(
frSpaceID
,
hdfError
)
CALL
io_write_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
pot
%
mt
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
dims
(:
3
)
=
(/
2
,
ng3
,
input
%
jspins
/)
dimsInt
=
dims
...
...
@@ -2184,7 +2227,7 @@ MODULE m_cdnpot_io_hdf
END
SUBROUTINE
writePotentialHDF
SUBROUTINE
readDensityHDF
(
fileID
,
input
,
stars
,
latharms
,
atoms
,
vacuum
,
oneD
,&
archiveName
,
densityType
,
fermiEnergy
,
l_qfix
,
l_DimChange
,
den
)
archiveName
,
densityType
,
fermiEnergy
,
l_qfix
,
l_DimChange
,
den
,
l_mtNoco
)
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_stars
),
INTENT
(
IN
)
::
stars
...
...
@@ -2200,7 +2243,7 @@ MODULE m_cdnpot_io_hdf
REAL
,
INTENT
(
OUT
)
::
fermiEnergy
LOGICAL
,
INTENT
(
OUT
)
::
l_qfix
,
l_DimChange
LOGICAL
,
INTENT
(
IN
)
::
l_mtNoco
INTEGER
::
starsIndex
,
latharmsIndex
,
structureIndex
,
stepfunctionIndex
INTEGER
::
previousDensityIndex
,
jspins
INTEGER
::
ntype
,
jmtd
,
nmzd
,
nmzxyd
,
nlhd
,
ng3
,
ng2
...
...
@@ -2413,14 +2456,25 @@ MODULE m_cdnpot_io_hdf
END
IF
den
%
mt
=
0.0
ALLOCATE
(
frTemp
(
jmtd
,
1
:
nlhd
+1
,
ntype
,
jspins
))
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
jspins
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_read_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
frTemp
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
den
%
mt
(
1
:
jmtdOut
,
0
:
nlhdOut
,
1
:
ntypeOut
,
1
:
jspinsOut
)
=
&
frTemp
(
1
:
jmtdOut
,
1
:
nlhdOut
+1
,
1
:
ntypeOut
,
1
:
jspinsOut
)
DEALLOCATE
(
frTemp
)
IF
(
.NOT.
l_mtNoco
)
THEN
ALLOCATE
(
frTemp
(
jmtd
,
1
:
nlhd
+1
,
ntype
,
jspins
))
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
jspins
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_read_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
frTemp
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
den
%
mt
(
1
:
jmtdOut
,
0
:
nlhdOut
,
1
:
ntypeOut
,
1
:
jspinsOut
)
=
&
frTemp
(
1
:
jmtdOut
,
1
:
nlhdOut
+1
,
1
:
ntypeOut
,
1
:
jspinsOut
)
DEALLOCATE
(
frTemp
)
ELSE
ALLOCATE
(
frTemp
(
jmtd
,
1
:
nlhd
+1
,
ntype
,
4
))
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
4
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_read_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
frTemp
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
den
%
mt
(
1
:
jmtdOut
,
0
:
nlhdOut
,
1
:
ntypeOut
,
1
:
4
)
=
&
frTemp
(
1
:
jmtdOut
,
1
:
nlhdOut
+1
,
1
:
ntypeOut
,
1
:
4
)
DEALLOCATE
(
frTemp
)
END
IF
den
%
pw
=
CMPLX
(
0.0
,
0.0
)
ALLOCATE
(
fpwTemp
(
ng3
,
jspins
))
...
...
@@ -2517,11 +2571,12 @@ MODULE m_cdnpot_io_hdf
END
SUBROUTINE
readDensityHDF
SUBROUTINE
readPotentialHDF
(
fileID
,
archiveName
,
potentialType
,&
iter
,
fr
,
fpw
,
fz
,
fzxy
)
iter
,
fr
,
fpw
,
fz
,
fzxy
,
l_mtnoco
)
INTEGER
(
HID_T
),
INTENT
(
IN
)
::
fileID
INTEGER
,
INTENT
(
IN
)
::
potentialType
CHARACTER
(
LEN
=*
),
INTENT
(
IN
)
::
archiveName
LOGICAL
,
INTENT
(
IN
)
::
l_mtNoco
INTEGER
,
INTENT
(
OUT
)
::
iter
...
...
@@ -2611,10 +2666,18 @@ MODULE m_cdnpot_io_hdf
CALL
io_read_attint0
(
groupBID
,
'ng2'
,
ng2
)
CALL
h5gclose_f
(
groupBID
,
hdfError
)
IF
(
.NOT.
l_mtNoco
)
THEN
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
jspins
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_read_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
fr
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
ELSE
dimsInt
(:
4
)
=
(/
jmtd
,
nlhd
+1
,
ntype
,
jspins
+2
/)
CALL
h5dopen_f
(
groupID
,
'fr'
,
frSetID
,
hdfError
)
CALL
io_read_real4
(
frSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
fr
)
CALL
h5dclose_f
(
frSetID
,
hdfError
)
END
IF
dimsInt
(:
3
)
=
(/
2
,
ng3
,
jspins
/)
CALL
h5dopen_f
(
groupID
,
'fpw'
,
fpwSetID
,
hdfError
)
...
...
io/pot_io.F90
View file @
5ddabb32
...
...
@@ -40,10 +40,11 @@ MODULE m_pot_io
CONTAINS
SUBROUTINE
readPotential
(
stars
,
vacuum
,
atoms
,
sphhar
,
input
,
sym
,
archiveType
,&
SUBROUTINE
readPotential
(
stars
,
noco
,
vacuum
,
atoms
,
sphhar
,
input
,
sym
,
archiveType
,&
iter
,
fr
,
fpw
,
fz
,
fzxy
)
TYPE
(
t_stars
),
INTENT
(
IN
)
::
stars
TYPE
(
t_noco
),
INTENT
(
IN
)
::
noco
TYPE
(
t_vacuum
),
INTENT
(
IN
)
::
vacuum
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
TYPE
(
t_sphhar
),
INTENT
(
IN
)
::
sphhar
...
...
@@ -103,7 +104,7 @@ MODULE m_pot_io
currentStructureIndex
,
currentStepfunctionIndex
)
CALL
readPotentialHDF
(
fileID
,
archiveName
,
potentialType
,&
iter
,
fr
,
fpw
,
fz
,
fzxy
)
iter
,
fr
,
fpw
,
fz
,
fzxy
,
noco
%
l_mtNocoPot
)
CALL
closeCDNPOT_HDF
(
fileID
)
ELSE
...
...
@@ -159,7 +160,7 @@ MODULE m_pot_io
END
SUBROUTINE
readPotential
SUBROUTINE
writePotential
(
stars
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,&
SUBROUTINE
writePotential
(
stars
,
noco
,
vacuum
,
atoms
,
cell
,
sphhar
,
input
,
sym
,
oneD
,
archiveType
,&
iter
,
pot
,
fpw
)
TYPE
(
t_stars
),
INTENT
(
IN
)
::
stars
...
...
@@ -169,6 +170,7 @@ MODULE m_pot_io
TYPE
(
t_sphhar
),
INTENT
(
IN
)
::
sphhar
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_sym
),
INTENT
(
IN
)
::
sym
TYPE
(
t_noco
),
INTENT
(
IN
)
::
noco
TYPE
(
t_oneD
),
INTENT
(
IN
)
::
oneD
TYPE
(
t_potden
),
INTENT
(
INOUT
)
::
pot
...
...
@@ -225,7 +227,7 @@ MODULE m_pot_io
END
IF
CALL
writePotentialHDF
(
input
,
fileID
,
archiveName
,
potentialType
,&
currentStarsIndex
,
currentLatharmsIndex
,
currentStructureIndex
,&
currentStepfunctionIndex
,
iter
,
pot
,
fpw
)
currentStepfunctionIndex
,
iter
,
pot
,
fpw
,
noco
%
l_mtNocoPot
)
IF
(
l_storeIndices
)
THEN
CALL
writePOTHeaderData
(
fileID
,
currentStarsIndex
,
currentLatharmsIndex
,&
...
...
io/r_inpXML.F90
View file @
5ddabb32
...
...
@@ -123,13 +123,15 @@ CONTAINS
INTEGER
::
mrotTemp
(
3
,
3
,
48
)
REAL
::
tauTemp
(
3
,
48
)
REAL
::
bk
(
3
)
LOGICAL
::
flipSpin
,
l_eV
,
invSym
,
l_qfix
,
relaxX
,
relaxY
,
relaxZ
LOGICAL
::
l_eV
,
invSym
,
l_qfix
,
relaxX
,
relaxY
,
relaxZ
LOGICAL
::
coreConfigPresent
,
l_enpara
,
l_orbcomp
,
tempBool
,
l_nocoinp
REAL
::
magMom
,
radius
,
logIncrement
,
qsc
(
3
),
latticeScale
,
dr
REAL
::
aTemp
,
zp
,
rmtmax
,
sumWeight
,
ldau_u
(
4
),
ldau_j
(
4
),
tempReal
REAL
::
ldau_phi
(
4
),
ldau_theta
(
4
)
REAL
::
weightScale
,
eParamUp
,
eParamDown
LOGICAL
::
l_amf
(
4
)
REAL
::
flipSpinPhi
,
flipSpinTheta
LOGICAL
::
flipSpinScale
REAL
,
PARAMETER
::
boltzmannConst
=
3.1668114e-6
! value is given in Hartree/Kelvin
INTEGER
::
lcutm
,
lcutwf
,
hybSelect
(
4
)
REAL
::
evac0Temp
(
2
,
2
)
...
...
@@ -218,7 +220,9 @@ CONTAINS
ALLOCATE
(
atoms
%
nlo
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
ncst
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
lnonsph
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
nflip
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinPhi
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinTheta
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
flipSpinScale
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
l_geo
(
atoms
%
ntype
))
ALLOCATE
(
atoms
%
lda_u
(
4
*
atoms
%
ntype
))
ALLOCATE
(
atoms
%
bmu
(
atoms
%
ntype
))
...
...
@@ -364,6 +368,7 @@ CONTAINS
noco
%
l_noco
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/magnetism/@l_noco'
))
input
%
swsp
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/magnetism/@swsp'
))
input
%
lflip
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/magnetism/@lflip'
))
input
%
l_removeMagnetisationFromInterstitial
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/magnetism/@l_removeMagnetisationFromInterstitial'
))
input
%
fixed_moment
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/magnetism/@fixed_moment'
))