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
52
Issues
52
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
d7ed0dd7
Commit
d7ed0dd7
authored
Dec 04, 2018
by
Matthias Redies
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of iffgit.fz-juelich.de:fleur/fleur into develop
parents
eac0c2ac
9127aa02
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
147 additions
and
48 deletions
+147
-48
init/inpeig.f90
init/inpeig.f90
+18
-8
init/postprocessInput.F90
init/postprocessInput.F90
+13
-3
inpgen/inpgen_arguments.F90
inpgen/inpgen_arguments.F90
+2
-1
inpgen/inpgen_help.f90
inpgen/inpgen_help.f90
+1
-0
io/r_inpXML.F90
io/r_inpXML.F90
+88
-26
io/w_inpXML.f90
io/w_inpXML.f90
+7
-0
io/writeBasis.F90
io/writeBasis.F90
+14
-9
main/fleur_arguments.F90
main/fleur_arguments.F90
+2
-1
main/fleur_init.F90
main/fleur_init.F90
+2
-0
No files found.
init/inpeig.f90
View file @
d7ed0dd7
MODULE
m_inpeig
CONTAINS
SUBROUTINE
inpeig
(&
&
atoms
,
cell
,
input
,
l_is_oneD
,
kpts
,
enpara
)
&
atoms
,
cell
,
input
,
l_is_oneD
,
kpts
,
enpara
,
kptsFilename
)
!*********************************************************************
! inputs the necessary quantities for the eigenvalue part (energy
! parameters, k-points, wavefunction cutoffs, etc.).
...
...
@@ -26,14 +26,15 @@
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
LOGICAL
,
INTENT
(
IN
)
::
l_is_oneD
TYPE
(
t_kpts
),
INTENT
(
INOUT
)
::
kpts
TYPE
(
t_enpara
),
INTENT
(
INOUT
)
::
enpara
TYPE
(
t_enpara
),
OPTIONAL
,
INTENT
(
INOUT
)
::
enpara
CHARACTER
(
LEN
=*
),
OPTIONAL
,
INTENT
(
IN
)
::
kptsFilename
! ..
! .. Local Scalars ..
REAL
::
wt
,
scale
INTEGER
::
i
,
j
,
nk
,
jsp
,
n
LOGICAL
::
xyu
,
l_enpara
,
l_clf
CHARACTER
(
len
=
13
)
::
fname
CHARACTER
(
LEN
=
255
)
::
fname
! ..
!
...
...
@@ -42,15 +43,24 @@
!---> read from file 40='enpara' shz Jan.96
!
IF
(
.NOT.
input
%
l_inpXML
)
THEN
!read enpara file if present!
CALL
enpara
%
init
(
atoms
,
input
%
jspins
)
CALL
enpara
%
READ
(
atoms
,
input
%
jspins
,
input
%
film
,
.false.
)
IF
(
PRESENT
(
enpara
))
THEN
IF
(
.NOT.
input
%
l_inpXML
)
THEN
!read enpara file if present!
CALL
enpara
%
init
(
atoms
,
input
%
jspins
)
CALL
enpara
%
READ
(
atoms
,
input
%
jspins
,
input
%
film
,
.false.
)
END
IF
END
IF
!
!---> read k-points from file 41='kpts'
!
OPEN
(
41
,
file
=
'kpts'
,
form
=
'formatted'
,
status
=
'old'
)
IF
(
PRESENT
(
kptsFilename
))
THEN
fname
=
TRIM
(
ADJUSTL
(
kptsFilename
))
ELSE
fname
=
'kpts'
END
IF
OPEN
(
41
,
file
=
TRIM
(
ADJUSTL
(
fname
)),
form
=
'formatted'
,
status
=
'old'
)
!
!---> k-mesh: given in units of the reciprocal lattice basis vectors
!---> scale is a factor to make input easier (default=1.0). k-pt
...
...
init/postprocessInput.F90
View file @
d7ed0dd7
...
...
@@ -235,7 +235,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
minNeigd
=
MAX
(
5
,
NINT
(
0.75
*
input
%
zelec
)
+
1
)
IF
(
noco
%
l_soc
.and.
(
.not.
noco
%
l_noco
))
minNeigd
=
2
*
minNeigd
IF
(
noco
%
l_soc
.and.
noco
%
l_ss
)
minNeigd
=
(
3
*
minNeigd
)/
2
IF
(
dimension
%
neigd
.LT.
minNeigd
)
THEN
IF
(
(
dimension
%
neigd
.NE.
-1
)
.AND.
(
dimension
%
neigd
.LT.
minNeigd
)
)
THEN
IF
(
dimension
%
neigd
>
0
)
THEN
WRITE
(
*
,
*
)
'numbands is too small. Setting parameter to default value.'
WRITE
(
*
,
*
)
'changed numbands (dimension%neigd) to '
,
minNeigd
...
...
@@ -250,8 +250,18 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
CALL
lapw_dim
(
kpts
,
cell
,
input
,
noco
,
oneD
,
forcetheo
,
DIMENSION
)
CALL
lapw_fft_dim
(
cell
,
input
,
noco
,
stars
)
atoms
%
nlotot
=
0
DO
n
=
1
,
atoms
%
ntype
DO
l
=
1
,
atoms
%
nlo
(
n
)
atoms
%
nlotot
=
atoms
%
nlotot
+
atoms
%
neq
(
n
)
*
(
2
*
atoms
%
llo
(
l
,
n
)
+
1
)
END
DO
END
DO
IF
(
dimension
%
neigd
.EQ.
-1
)
THEN
dimension
%
neigd
=
dimension
%
nvd
+
atoms
%
nlotot
END
IF
obsolete
%
lepr
=
0
IF
(
noco
%
l_noco
)
dimension
%
neigd
=
2
*
dimension
%
neigd
...
...
inpgen/inpgen_arguments.F90
View file @
d7ed0dd7
...
...
@@ -13,7 +13,7 @@ MODULE m_fleur_arguments
CHARACTER
(
len
=
200
)
::
values
END
TYPE
t_fleur_param
INTEGER
,
PARAMETER
::
no_params
=
6
INTEGER
,
PARAMETER
::
no_params
=
7
TYPE
(
t_fleur_param
)
::
fleur_param
(
no_params
)
=
(/&
t_fleur_param
(
0
,
"-old"
,
"Generate input file for old fleur versions"
,
""
),&
...
...
@@ -21,6 +21,7 @@ MODULE m_fleur_arguments
t_fleur_param
(
0
,
"-genEnpara"
,
"generate an 'enpara' file"
,
""
),&
t_fleur_param
(
0
,
"-electronConfig"
,
"explicitely write the electron configuration into inp.xml"
,
""
),&
t_fleur_param
(
0
,
"-fast_defaults"
,
"generate more aggressive (and less stable) input parameters for faster calculations"
,
""
),&
t_fleur_param
(
0
,
"-kpts_gw"
,
"add alternative k point set for GW"
,
""
),&
t_fleur_param
(
0
,
"-h"
,
"print this help message"
,
""
)&
/)
...
...
inpgen/inpgen_help.f90
View file @
d7ed0dd7
...
...
@@ -32,6 +32,7 @@ CONTAINS
CALL
print_argument
(
"-explicit"
)
CALL
print_argument
(
"-electronConfig"
)
CALL
print_argument
(
"-fast_defaults"
)
CALL
print_argument
(
"-kpts_gw"
)
CALL
print_argument
(
"-h"
)
WRITE
(
*
,
'(a)'
)
""
WRITE
(
*
,
'(a)'
)
"Please check the documentation on www.flapw.de for more details"
...
...
io/r_inpXML.F90
View file @
d7ed0dd7
...
...
@@ -136,7 +136,9 @@ CONTAINS
CHARACTER
(
LEN
=
255
)
::
xPathA
,
xPathB
,
xPathC
,
xPathD
,
xPathE
CHARACTER
(
LEN
=
11
)
::
latticeType
CHARACTER
(
LEN
=
50
)
::
versionString
CHARACTER
(
LEN
=
150
)
::
kPointsPrefix
INTEGER
::
altKPointSetIndex
,
altKPointSetIndices
(
2
)
LOGICAL
::
ldaSpecies
REAL
::
socscaleSpecies
...
...
@@ -304,7 +306,7 @@ CONTAINS
IF
(
numberNodes
.EQ.
1
)
THEN
valueString
=
TRIM
(
ADJUSTL
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
)))))
IF
(
TRIM
(
ADJUSTL
(
valueString
))
.EQ.
'all'
)
THEN
STOP
'Feature to calculate all eigenfunctions not yet implemented.'
dimension
%
neigd
=
-1
ELSE
READ
(
valueString
,
*
)
dimension
%
neigd
END
IF
...
...
@@ -355,6 +357,54 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
IF
(
ABS
(
input
%
fixed_moment
)
>
1E-8
.AND.
(
input
%
jspins
==
1.
OR
.
noco
%
l_noco
))
CALL
judft_error
(
"Fixed moment only in collinear calculations with two spins"
)
! Read in optional expert modes switches
xPathA
=
'/fleurInput/calculationSetup/expertModes'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
input
%
gw
=
0
input
%
secvar
=
.FALSE.
IF
(
numberNodes
.EQ.
1
)
THEN
input
%
gw
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@gw'
))
input
%
secvar
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@secvar'
))
END
IF
! Check for alternative k point sets for the chosen FLEUR mode
xPathA
=
'/fleurInput/output'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
banddos
%
band
=
.FALSE.
IF
(
numberNodes
.EQ.
1
)
THEN
banddos
%
band
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@band'
))
END
IF
altKPointSetIndices
(:)
=
-1
xPathA
=
'/fleurInput/calculationSetup/bzIntegration/altKPointSet'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
IF
(
numberNodes
.NE.
0
)
THEN
DO
i
=
1
,
numberNodes
WRITE
(
xPathA
,
*
)
'/fleurInput/calculationSetup/bzIntegration/altKPointSet['
,
i
,
']/@purpose'
valueString
=
TRIM
(
ADJUSTL
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
)))))
IF
((
altKPointSetIndices
(
2
)
.EQ.
-1
)
.AND.
(
TRIM
(
ADJUSTL
(
valueString
))
.EQ.
'GW'
))
THEN
altKPointSetIndices
(
2
)
=
i
ELSE
IF
((
altKPointSetIndices
(
1
)
.EQ.
-1
)
.AND.
(
TRIM
(
ADJUSTL
(
valueString
))
.EQ.
'bands'
))
THEN
altKPointSetIndices
(
1
)
=
i
END
IF
END
DO
END
IF
altKPointSetIndex
=
-1
IF
(
banddos
%
band
)
THEN
altKPointSetIndex
=
altKPointSetIndices
(
1
)
ELSE
IF
(
input
%
gw
.EQ.
2
)
THEN
altKPointSetIndex
=
altKPointSetIndices
(
2
)
END
IF
IF
(
altKPointSetIndex
.NE.
-1
)
THEN
WRITE
(
kPointsPrefix
,
*
)
'/fleurInput/calculationSetup/bzIntegration/altKPointSet['
,
altKPointSetIndex
,
']'
END
IF
! Read in Brillouin zone integration parameters
kpts
%
nkpt3
=
0
...
...
@@ -401,9 +451,13 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
STOP
'Error: Optionality of valence electrons in input file not yet implemented!'
END
IF
IF
(
altKPointSetIndex
.EQ.
-1
)
THEN
WRITE
(
kPointsPrefix
,
*
)
'/fleurInput/calculationSetup/bzIntegration'
END
IF
! Option kPointDensity
kpts
%
kPointDensity
(:)
=
0.0
xPathA
=
'/fleurInput/calculationSetup/bzIntegration
/kPointDensity'
xPathA
=
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointDensity'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
IF
(
numberNodes
.EQ.
1
)
THEN
l_kpts
=
.FALSE.
...
...
@@ -415,7 +469,7 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
END
IF
! Option kPointMesh
xPathA
=
'/fleurInput/calculationSetup/bzIntegration
/kPointMesh'
xPathA
=
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointMesh'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
IF
(
numberNodes
.EQ.
1
)
THEN
l_kpts
=
.FALSE.
...
...
@@ -428,7 +482,7 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
END
IF
! Option kPointCount
xPathA
=
'/fleurInput/calculationSetup/bzIntegration
/kPointCount'
xPathA
=
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointCount'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
IF
(
numberNodes
.EQ.
1
)
THEN
l_kpts
=
.FALSE.
...
...
@@ -443,7 +497,7 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
kpts
%
wtkpt
=
0.0
kpts
%
posScale
=
1.0
numberNodes
=
xmlGetNumberOfNodes
(
'/fleurInput/calculationSetup/bzIntegration
/kPointCount/specialPoint'
)
numberNodes
=
xmlGetNumberOfNodes
(
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointCount/specialPoint'
)
IF
(
numberNodes
.EQ.
1
)
THEN
STOP
'Error: Single special k point provided. This does not make sense!'
END
IF
...
...
@@ -453,7 +507,7 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
ALLOCATE
(
kpts
%
specialPoints
(
3
,
kpts
%
numSpecialPoints
))
ALLOCATE
(
kpts
%
specialPointNames
(
kpts
%
numSpecialPoints
))
DO
i
=
1
,
kpts
%
numSpecialPoints
WRITE
(
xPathA
,
*
)
'/fleurInput/calculationSetup/bzIntegration
/kPointCount/specialPoint['
,
i
,
']'
WRITE
(
xPathA
,
*
)
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointCount/specialPoint['
,
i
,
']'
valueString
=
TRIM
(
ADJUSTL
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
)))))
kpts
%
specialPoints
(
1
,
i
)
=
evaluatefirst
(
valueString
)
kpts
%
specialPoints
(
2
,
i
)
=
evaluatefirst
(
valueString
)
...
...
@@ -468,10 +522,10 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
END
IF
! Option kPointList
numberNodes
=
xmlGetNumberOfNodes
(
'/fleurInput/calculationSetup/bzIntegration
/kPointList'
)
numberNodes
=
xmlGetNumberOfNodes
(
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointList'
)
IF
(
numberNodes
.EQ.
1
)
THEN
l_kpts
=
.TRUE.
numberNodes
=
xmlGetNumberOfNodes
(
'/fleurInput/calculationSetup/bzIntegration
/kPointList/kPoint'
)
numberNodes
=
xmlGetNumberOfNodes
(
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointList/kPoint'
)
kpts
%
nkpt
=
numberNodes
kpts
%
l_gamma
=
.FALSE.
ALLOCATE
(
kpts
%
bk
(
3
,
kpts
%
nkpt
))
...
...
@@ -480,11 +534,11 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
kpts
%
wtkpt
=
0.0
kpts
%
specificationType
=
3
kpts
%
posScale
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/bzIntegration
/kPointList/@posScale'
))
weightScale
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
'/fleurInput/calculationSetup/bzIntegration
/kPointList/@weightScale'
))
kpts
%
posScale
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointList/@posScale'
))
weightScale
=
evaluateFirstOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointList/@weightScale'
))
DO
i
=
1
,
kpts
%
nkpt
WRITE
(
xPathA
,
*
)
'/fleurInput/calculationSetup/bzIntegration
/kPointList/kPoint['
,
i
,
']'
WRITE
(
xPathA
,
*
)
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'
/kPointList/kPoint['
,
i
,
']'
valueString
=
TRIM
(
ADJUSTL
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
)))))
READ
(
valueString
,
*
)
kpts
%
bk
(
1
,
i
),
kpts
%
bk
(
2
,
i
),
kpts
%
bk
(
3
,
i
)
kpts
%
bk
(:,
i
)
=
kpts
%
bk
(:,
i
)/
kpts
%
posScale
...
...
@@ -494,6 +548,25 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
kpts
%
posScale
=
1.0
END
IF
! Option kPointListFile
xPathA
=
TRIM
(
ADJUSTL
(
kPointsPrefix
))//
'/kPointListFile'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
IF
(
numberNodes
.EQ.
1
)
THEN
valueString
=
TRIM
(
ADJUSTL
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@filename'
)))
OPEN
(
41
,
file
=
TRIM
(
ADJUSTL
(
valueString
)),
form
=
'formatted'
,
status
=
'old'
)
READ
(
41
,
*
)
kpts
%
nkpt
CLOSE
(
41
)
ALLOCATE
(
kpts
%
bk
(
3
,
kpts
%
nkpt
))
ALLOCATE
(
kpts
%
wtkpt
(
kpts
%
nkpt
))
kpts
%
bk
=
0.0
kpts
%
wtkpt
=
0.0
kpts
%
l_gamma
=
.FALSE.
l_kpts
=
.TRUE.
kpts
%
specificationType
=
3
kpts
%
posScale
=
1.0
CALL
inpeig
(
atoms
,
cell
,
input
,
.FALSE.
,
kpts
,
kptsFilename
=
TRIM
(
ADJUSTL
(
valueString
)))
END
IF
! Read in optional SOC parameters if present
xPathA
=
'/fleurInput/calculationSetup/soc'
...
...
@@ -574,19 +647,6 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
oneD
%
odd
%
zrfs
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@zrfs1'
))
END
IF
! Read in optional expert modes switches
xPathA
=
'/fleurInput/calculationSetup/expertModes'
numberNodes
=
xmlGetNumberOfNodes
(
xPathA
)
input
%
gw
=
0
input
%
secvar
=
.FALSE.
IF
(
numberNodes
.EQ.
1
)
THEN
input
%
gw
=
evaluateFirstIntOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@gw'
))
input
%
secvar
=
evaluateFirstBoolOnly
(
xmlGetAttributeValue
(
TRIM
(
ADJUSTL
(
xPathA
))//
'/@secvar'
))
END
IF
! Read in optional geometry optimization parameters
xPathA
=
'/fleurInput/calculationSetup/geometryOptimization'
...
...
@@ -1945,8 +2005,10 @@ input%preconditioning_param = evaluateFirstOnly(xmlGetAttributeValue('/fleurInpu
END
IF
wann
%
l_byindex
=
.TRUE.
IF
(
input
%
l_wann
)
THEN
IF
(
dimension
%
neigd
.LT.
MAX
(
wann
%
band_max
(
1
),
wann
%
band_max
(
2
)))
THEN
dimension
%
neigd
=
MAX
(
wann
%
band_max
(
1
),
wann
%
band_max
(
2
))
IF
(
dimension
%
neigd
.NE.
-1
)
THEN
IF
(
dimension
%
neigd
.LT.
MAX
(
wann
%
band_max
(
1
),
wann
%
band_max
(
2
)))
THEN
dimension
%
neigd
=
MAX
(
wann
%
band_max
(
1
),
wann
%
band_max
(
2
))
END
IF
END
IF
END
IF
END
IF
...
...
io/w_inpXML.f90
View file @
d7ed0dd7
...
...
@@ -279,6 +279,13 @@ SUBROUTINE w_inpXML(&
212
FORMAT
(
' <kPointDensity denX="'
,
f0.6
,
'" denY="'
,
f0.6
,
'" denZ="'
,
f0.6
,
'" gamma="'
,
l1
,
'"/>'
)
WRITE
(
fileNum
,
212
)
kpts
%
kPointDensity
(
1
),
kpts
%
kPointDensity
(
2
),
kpts
%
kPointDensity
(
3
),
kptGamma
END
IF
IF
(
juDFT_was_argument
(
"-kpts_gw"
))
THEN
WRITE
(
fileNum
,
'(a)'
)
' <altKPointSet purpose="GW">'
WRITE
(
fileNum
,
'(a)'
)
' <kPointListFile filename="kpts_gw"/>'
WRITE
(
fileNum
,
'(a)'
)
' </altKPointSet>'
END
IF
WRITE
(
fileNum
,
'(a)'
)
' </bzIntegration>'
! <energyParameterLimits ellow="-2.00000" elup="2.00000"/>
...
...
io/writeBasis.F90
View file @
d7ed0dd7
...
...
@@ -19,6 +19,7 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,vCoul,vx,mpi,DI
USE
m_genmtbasis
USE
m_pot_io
USE
m_abcof
USE
m_abcrot
USE
m_eig66_io
,
ONLY
:
read_eig
IMPLICIT
NONE
...
...
@@ -454,16 +455,20 @@ SUBROUTINE writeBasis(input,noco,kpts,atoms,sym,cell,enpara,vTot,vCoul,vx,mpi,DI
CALL
read_eig
(
eig_id
,
nk
,
jsp
,
zmat
=
zMat
)
CALL
eigVecCoeffs
%
init
(
input
,
DIMENSION
,
atoms
,
noco
,
jsp
,
numbands
)
IF
(
input
%
l_f
)
CALL
force
%
init2
(
numbands
,
input
,
atoms
)
DO
i
=
1
,
atoms
%
nat
ngopr_temp
(
i
)
=
atoms
%
ngopr
(
i
)
atoms
%
ngopr
(
i
)
=
1
END
DO
!
DO i=1,atoms%nat
!
ngopr_temp(i)=atoms%ngopr(i)
!
atoms%ngopr(i)=1
!
END DO
CALL
abcof
(
input
,
atoms
,
sym
,
cell
,
lapw
,
numbands
,
usdus
,
noco
,
jsp
,
oneD
,&
eigVecCoeffs
%
acof
(:,
0
:,:,
jsp
),
eigVecCoeffs
%
bcof
(:,
0
:,:,
jsp
),&
eigVecCoeffs
%
ccof
(
-
atoms
%
llod
:,:,:,:,
jsp
),
zMat
,
results
%
eig
(:,
nk
,
jsp
),
force
)
DO
i
=
1
,
atoms
%
nat
atoms
%
ngopr
(
i
)
=
ngopr_temp
(
i
)
END
DO
! DO i=1,atoms%nat
! atoms%ngopr(i)=ngopr_temp(i)
! END DO
CALL
abcrot
(
atoms
%
ntype
,
atoms
%
nat
,
dimension
%
neigd
,
atoms
%
lmaxd
,
dimension
%
lmd
,
atoms
%
llod
,
atoms
%
nlod
,
atoms
%
ntype
,
atoms
%
neq
,&
numbands
,
atoms
%
lmax
,
atoms
%
nlo
,
atoms
%
llo
,
sym
%
nop
,
atoms
%
ngopr
,
sym
%
mrot
,
atoms
%
invsat
,
sym
%
invsatnr
,
cell
%
bmat
,&
oneD
%
odi
,
oneD
%
ods
,&
eigVecCoeffs
%
acof
(:,
0
:,:,
jsp
),
eigVecCoeffs
%
bcof
(:,
0
:,:,
jsp
),
eigVecCoeffs
%
ccof
(
-
atoms
%
llod
:,:,:,:,
jsp
))
!-------------------------for spex output: nbasfcn=nv(because lo info not needed) and numbands setting to numbands without highest (degenerat) state--------
nbasfcn
=
lapw
%
nv
(
jsp
)
ndbands
=
numbands
-1
...
...
@@ -597,12 +602,12 @@ write(*,*)numbands,ndbands
dims
(:
4
)
=
Hdim1
dimsInt
=
dims
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
itypeSpaceID
,
hdfError
)
CALL
h5screate_simple_f
(
4
,
dims
(:
4
),
itypeSpaceID
,
hdfError
)
CALL
h5dcreate_f
(
kptGroupID
,
"mt"
,
H5T_NATIVE_DOUBLE
,
itypeSpaceID
,
itypeSetID
,
hdfError
)
CALL
h5sclose_f
(
itypeSpaceID
,
hdfError
)
CALL
io_write_real4
(
itypeSetID
,(/
1
,
1
,
1
,
1
/),
dimsInt
(:
4
),
cof
)
CALL
h5dclose_f
(
itypeSetID
,
hdfError
)
deallocate
(
cof
)
deallocate
(
cof
)
!-------------------------end output spex format-----------------
CALL
h5gclose_f
(
kptGroupID
,
hdfError
)
...
...
main/fleur_arguments.F90
View file @
d7ed0dd7
...
...
@@ -13,7 +13,7 @@ MODULE m_fleur_arguments
CHARACTER
(
len
=
200
)
::
values
END
TYPE
t_fleur_param
INTEGER
,
PARAMETER
::
no_params
=
2
2
INTEGER
,
PARAMETER
::
no_params
=
2
3
TYPE
(
t_fleur_param
)
::
fleur_param
(
no_params
)
=
(/&
!Input options
t_fleur_param
(
0
,
"-toXML"
,
"Convert an old 'inp' file into the new XML format"
,
""
),&
...
...
@@ -60,6 +60,7 @@ MODULE m_fleur_arguments
!Output
t_fleur_param
(
0
,
"-no_out"
,
"Do not open the 'out' file but write to stdout"
,
""
),&
t_fleur_param
(
0
,
"-genEnpara"
,
"Generate an 'enpara' file for the energy parameters"
,
""
),&
t_fleur_param
(
0
,
"-kpts_gw"
,
"add alternative k point set for GW in all outputs for the XML input file"
,
""
),&
t_fleur_param
(
0
,
"-h"
,
"Print this message"
,
""
),&
t_fleur_param
(
0
,
"-no_send"
,
"Do not send usage data"
,
""
)&
!HDF density
...
...
main/fleur_init.F90
View file @
d7ed0dd7
...
...
@@ -28,6 +28,7 @@
USE
m_setupMPI
USE
m_cdn_io
USE
m_fleur_info
USE
m_broyd_io
USE
m_checks
USE
m_prpqfftmap
USE
m_writeOutHeader
...
...
@@ -523,6 +524,7 @@
CALL
results
%
init
(
dimension
,
input
,
atoms
,
kpts
,
noco
)
IF
(
mpi
%
irank
.EQ.
0
)
THEN
IF
(
input
%
gw
.NE.
0
)
CALL
resetBroydenHistory
()
CALL
setStartingDensity
(
noco
%
l_noco
)
END
IF
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment