Commit ff0cec65 authored by Daniel Wortmann's avatar Daniel Wortmann

Fixed bugs and updated more tests

parent be8a712f
......@@ -58,20 +58,20 @@ CONTAINS
call mpi_bc(this%vol,rank,mpi_comm)
call mpi_bc(this%volint,rank,mpi_comm)
end subroutine mpi_bc_cell
SUBROUTINE init(cell,volmts)
!initialize cell, only input is cell%amat and cell%z1 in case of a film
USE m_constants,ONLY:tpi_const
CLASS (t_cell),INTENT(INOUT):: cell
real,intent(in):: volmts !Volume of all MT-spheres
CALL inv3(cell%amat,cell%bmat,cell%omtil)
IF (cell%omtil<0) CALL judft_warn("Negative volume! You are using a left-handed coordinate system")
cell%omtil=ABS(cell%omtil)
cell%bmat=tpi_const*cell%bmat
IF (cell%z1>0) THEN
cell%vol = (cell%omtil/cell%amat(3,3))*cell%z1
cell%vol = (cell%omtil/cell%amat(3,3))*cell%z1*2
cell%area = cell%omtil/cell%amat(3,3)
ELSE
cell%vol = cell%omtil
......@@ -109,7 +109,7 @@ CONTAINS
b(3,1) = (a(2,1)*a(3,2)-a(2,2)*a(3,1))/d
b(3,2) = (a(1,2)*a(3,1)-a(1,1)*a(3,2))/d
b(3,3) = (a(1,1)*a(2,2)-a(1,2)*a(2,1))/d
END SUBROUTINE inv3
END SUBROUTINE init
......@@ -118,20 +118,21 @@ CONTAINS
use m_types_xml
class(t_cell),intent(INout)::this
type(t_xml),intent(in) ::xml
! Read in lattice parameters
character(len=200)::valueString,path
REAL:: scale,dvac,dtild
if (xml%GetNumberOfNodes('/fleurInput/cell/filmLattice')==1) then
path= '/fleurInput/cell/filmLattice'
this%z1=evaluateFirstOnly(xml%GetAttributeValue(trim(path)//'/@dvac'))/2
dtild=evaluateFirstOnly(xml%GetAttributeValue(trim(path)//'/@dtilda'))
else
this%z1=evaluateFirstOnly(xml%GetAttributeValue(trim(path)//'/@dVac'))/2
dvac=this%z1*2
dtild=evaluateFirstOnly(xml%GetAttributeValue(trim(path)//'/@dTilda'))
else
dvac=0.0
path = '/fleurInput/cell/bulkLattice'
endif
scale=evaluateFirstOnly(xml%GetAttributeValue(trim(path)//'/@scale'))
path=trim(path)//'/bravaisMatrix'
valueString = TRIM(ADJUSTL(xml%GetAttributeValue(TRIM(ADJUSTL(path))//'/row-1')))
......@@ -146,12 +147,12 @@ CONTAINS
this%amat(1,3) = evaluateFirst(valueString)
this%amat(2,3) = evaluateFirst(valueString)
this%amat(3,3) = evaluateFirst(valueString)
IF (dvac>0) THEN
this%amat(3,3)=2*this%z1
this%amat(3,3)=dtild
ENDIF
this%amat=this%amat*scale
END SUBROUTINE read_xml_cell
END MODULE m_types_cell
......@@ -19,7 +19,7 @@ MODULE m_types_oneD
INTEGER :: kimax2
INTEGER :: nop=0, nat=0
END TYPE od_dim
TYPE od_inp
LOGICAL :: d1
INTEGER :: mb, M, k3, m_cyl
......@@ -31,7 +31,7 @@ MODULE m_types_oneD
INTEGER, POINTER :: kv(:, :) !(2,n2d)
INTEGER, POINTER :: nst2(:) !(n2d)
END TYPE od_inp
TYPE od_sym
INTEGER :: nop, nat
INTEGER, POINTER :: ngopr(:) !(nat)
......@@ -40,13 +40,13 @@ MODULE m_types_oneD
INTEGER, POINTER :: invtab(:) !(nop)
INTEGER, POINTER :: multab(:, :) !(nop,nop)
END TYPE od_sym
TYPE od_lda
INTEGER :: nn2d
INTEGER, POINTER :: igf(:, :) !(0:nn2d-1,2)
REAL, POINTER :: pgf(:) !(0:nn2d-1)
END TYPE od_lda
TYPE od_gga
INTEGER :: nn2d
REAL, POINTER :: pgfx(:) ! (0:nn2d-1)
......@@ -111,11 +111,11 @@ MODULE m_types_oneD
class(t_oned),intent(inout)::this
type(t_xml),intent(in) ::xml
! Read in optional 1D parameters if present
character(len=100):: xpathA
integer :: numberNodes
xPathA = '/fleurInput/calculationSetup/oneDParams'
numberNodes = xml%GetNumberOfNodes(xPathA)
......@@ -138,10 +138,30 @@ MODULE m_types_oneD
USE m_types_atoms
CLASS(t_oned),INTENT(inout)::oneD
TYPE(t_atoms),INTENT(in)::atoms
oneD%odd%nq2 = oneD%odd%n2d
oneD%odd%kimax2 = oneD%odd%nq2 - 1
oneD%odd%nat = atoms%nat
oneD%odi%d1 = oneD%odd%d1 ; oneD%odi%mb = oneD%odd%mb ; oneD%odi%M = oneD%odd%M
oneD%odi%k3 = oneD%odd%k3 ; oneD%odi%chi = oneD%odd%chi ; oneD%odi%rot = oneD%odd%rot
oneD%odi%invs = oneD%odd%invs ; oneD%odi%zrfs = oneD%odd%zrfs
oneD%odi%n2d = oneD%odd%n2d ; oneD%odi%nq2 = oneD%odd%nq2 ; oneD%odi%nn2d = oneD%odd%nn2d
oneD%odi%kimax2 = oneD%odd%kimax2 ; oneD%odi%m_cyl = oneD%odd%m_cyl
oneD%odi%ig => oneD%ig1 ; oneD%odi%kv => oneD%kv1 ; oneD%odi%nst2 => oneD%nstr1
oneD%ods%nop = oneD%odd%nop ; oneD%ods%nat = oneD%odd%nat
oneD%ods%mrot => oneD%mrot1 ; oneD%ods%tau => oneD%tau1 ; oneD%ods%ngopr => oneD%ngopr1
oneD%ods%invtab => oneD%invtab1 ; oneD%ods%multab => oneD%multab1
oneD%odl%nn2d = oneD%odd%nn2d
oneD%odl%igf => oneD%igfft1 ; oneD%odl%pgf => oneD%pgfft1
oneD%odg%nn2d = oneD%odd%nn2d
oneD%odg%pgfx => oneD%pgft1x ; oneD%odg%pgfy => oneD%pgft1y
oneD%odg%pgfxx => oneD%pgft1xx ; oneD%odg%pgfyy => oneD%pgft1yy ; oneD%odg%pgfxy => oneD%pgft1xy
oneD%odd%nq2 = oneD%odd%n2d
! Initialize missing 1D code arrays
if (associated(oneD%ig1)) return
ALLOCATE (oneD%ig1(-oneD%odd%k3:oneD%odd%k3,-oneD%odd%M:oneD%odd%M))
ALLOCATE (oneD%kv1(2,oneD%odd%n2d),oneD%nstr1(oneD%odd%n2d))
ALLOCATE (oneD%ngopr1(atoms%nat),oneD%mrot1(3,3,oneD%odd%nop),oneD%tau1(3,oneD%odd%nop))
......
......@@ -32,6 +32,7 @@ MODULE m_types_vacuum
CONTAINS
PROCEDURE :: read_xml
PROCEDURE :: mpi_bc => mpi_bc_vacuum
PROCEDURE :: init =>vacuum_init
END TYPE t_vacuum
CONTAINS
......@@ -65,14 +66,14 @@ MODULE m_types_vacuum
CALL mpi_bc(this%locy(2),rank,mpi_comm)
CALL mpi_bc(this%starcoeff,rank,mpi_comm)
CALL mpi_bc(this%izlay,rank,mpi_comm)
END SUBROUTINE mpi_bc_vacuum
SUBROUTINE read_xml(this,xml)
USE m_types_xml
CLASS(t_vacuum),INTENT(INOUT)::this
TYPE(t_xml),INTENT(IN)::xml
CHARACTER(len=100)::xpatha
IF (xml%GetNumberOfNodes('/fleurInput/cell/filmLattice')==1) THEN
this%dvac = evaluateFirstOnly(xml%GetAttributeValue('/fleurInput/cell/filmLattice/@dVac'))
......@@ -93,6 +94,15 @@ MODULE m_types_vacuum
END IF
this%layerd = this%layers
ALLOCATE(this%izlay(this%layerd,2))
ENDIF
END SUBROUTINE read_xml
ENDIF
END SUBROUTINE read_xml
subroutine vacuum_init(this,sym)
use m_types_sym
CLASS(t_vacuum),INTENT(INOUT)::this
TYPE(t_sym),INTENT(IN)::sym
if (sym%invs.or.sym%zrfs) this%nvac=1
end subroutine vacuum_init
END MODULE m_types_vacuum
......@@ -32,7 +32,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
USE m_od_kptsgen
USE m_relaxio
IMPLICIT NONE
TYPE(t_mpi) ,INTENT (IN) :: mpi
......@@ -40,7 +40,7 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
TYPE(t_forcetheo_data),INTENT(IN):: forcetheo_data
TYPE(t_input), INTENT(INOUT) :: input
TYPE(t_sym), INTENT(INOUT) :: sym
TYPE(t_stars), INTENT(INOUT) :: stars
TYPE(t_stars), INTENT(INOUT) :: stars
TYPE(t_atoms), INTENT(INOUT) :: atoms
TYPE(t_vacuum), INTENT(INOUT) :: vacuum
TYPE(t_kpts), INTENT(INOUT) :: kpts
......@@ -57,17 +57,17 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
TYPE(t_sphhar) ,INTENT (OUT) :: sphhar
TYPE(t_field), INTENT(INOUT) :: field
LOGICAL, INTENT (IN) :: l_kpts
INTEGER :: i, j, n, na, n1, n2, iType, l, ilo, ikpt
INTEGER :: minNeigd, nv, nv2, kq1, kq2, kq3, jrc, jsp, ii
INTEGER :: ios, ntst, ierr
REAL :: rmtmax, zp, radius, dr
LOGICAL :: l_vca, l_test
INTEGER, ALLOCATABLE :: jri1(:), lmax1(:)
REAL, ALLOCATABLE :: rmt1(:), dx1(:)
#ifdef CPP_MPI
INCLUDE 'mpif.h'
#endif
......@@ -78,17 +78,17 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
call cell%init(DOT_PRODUCT(atoms%volmts(:),atoms%neq(:)))
call atoms%init(cell)
CALL sym%init(cell,input%film)
call vacuum%init(sym)
CALL enpara%init_enpara(atoms,input%jspins,input%film,enparaXML)
CALL make_sym(sym,cell,atoms,noco,oneD,input)
CALL make_sym(sym,cell,atoms,noco,oneD,input)
call make_forcetheo(forcetheo_data,cell,sym,atoms,forcetheo)
call make_xcpot(xcpot,atoms,input)
IF (mpi%irank.EQ.0) call check_input_switches(banddos,vacuum,noco,atoms,input)
! Generate missing general parameters
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
......@@ -99,9 +99,9 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
ENDIF
dimension%neigd = minNeigd
END IF
CALL lapw_dim(kpts,cell,input,noco,oneD,forcetheo,DIMENSION)
IF(dimension%neigd.EQ.-1) THEN
dimension%neigd = dimension%nvd + atoms%nlotot
END IF
......@@ -111,7 +111,6 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
CALL ylmnorm_init(atoms%lmaxd)
call oneD%init(atoms)
......@@ -120,18 +119,18 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
! Check muffin tin radii
l_test = .TRUE. ! only checking, dont use new parameters
CALL chkmt(atoms,input,vacuum,cell,oneD,l_test)
!adjust positions by displacements
CALL apply_displacements(cell,input,vacuum,oneD,sym,noco,atoms)
call make_sphhar(atoms,sphhar,sym,cell,oneD)
CALL make_stars(stars,sym,atoms,vacuum,sphhar,input,cell,xcpot,oneD,noco,mpi)
! Store structure data
CALL storeStructureIfNew(input,stars, atoms, cell, vacuum, oneD, sym, mpi,sphhar,noco)
!Adjust kpoints in case of DOS
IF ( banddos%dos .AND. banddos%ndir == -3 ) THEN
WRITE(*,*) 'Recalculating k point grid to cover the full BZ.'
!CALL gen_bz(kpts,sym)
......@@ -141,14 +140,14 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
kpts%bk(:,:) = kpts%bkf(:,:)
kpts%wtkpt = 1.0 / kpts%nkptf
END IF
CALL prp_xcfft(stars,input,cell,xcpot)
IF (.NOT.sliceplot%iplot) THEN
IF (.NOT.sliceplot%iplot) THEN
IF (mpi%irank.EQ.0) THEN
CALL convn(atoms,stars)
CALL e_field(atoms,DIMENSION,stars,sym,vacuum,cell,input,field%efield)
......@@ -159,12 +158,13 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,kpts,&
#ifdef CPP_MPI
CALL MPI_BCAST(atoms%nat,1,MPI_INTEGER,0,mpi%mpi_comm,ierr)
#endif
IF (.not.noco%l_noco) &
IF (.not.noco%l_noco) &
CALL transform_by_moving_atoms(mpi,stars,atoms,vacuum, cell, sym, sphhar,input,oned,noco)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!! End of input postprocessing (calculate missing parameters)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
call oneD%init(atoms)
END SUBROUTINE postprocessInput
......
......@@ -109,7 +109,7 @@ CONTAINS
INQUIRE(file='kpts',exist=l_exist)
IF (.NOT.l_exist) CALL judft_error("Could not read 'kpts' file")
OPEN(99,file='kpts')
READ(99,*,iostat=ios) kpts%nkpt,scale,wscale
READ(99,"(i5,2f20.10,3x,l1)",iostat=ios) kpts%nkpt,scale,wscale
ALLOCATE(kpts%bk(3,kpts%nkpt),kpts%wtkpt(kpts%nkpt))
DO n=1,kpts%nkpt
IF (.NOT.film) THEN
......@@ -119,7 +119,12 @@ CONTAINS
kpts%bk(3,n)=0.0
ENDIF
ENDDO
CLOSE(99)
!check for tetraeder
READ(99,*,err=100,end=100) kpts%ntet
ALLOCATE(kpts%ntetra(4,kpts%ntet),kpts%voltet(kpts%ntet))
read(99,*) kpts%ntetra
read(99,*) kpts%voltet
100 CLOSE(99)
IF (ios.NE.0) CALL judft_error("Error while reading 'kpts' file")
IF (scale>0.0) kpts%bk=kpts%bk/scale
IF (wscale>0.0) kpts%wtkpt=kpts%wtkpt/wscale
......
......@@ -2,7 +2,7 @@
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="0.30">
<xsd:element name="fleurInput" type="FleurInputType"/>
<xsd:complexType name="FleurInputType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="comment" type="xsd:string"/>
......@@ -35,7 +35,7 @@
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="value" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="CalculationSetupType">
<xsd:all>
<xsd:element name="cutoffs" type="CutoffsType"/>
......@@ -111,7 +111,7 @@
<xsd:attribute default="0" name="kcrel" type="xsd:integer" use="optional"/>
<xsd:attribute default="0" name="coretail_lmax" type="xsd:integer" use="optional"/>
</xsd:complexType>
<xsd:complexType name="CellType">
<xsd:sequence>
<xsd:choice>
......@@ -121,7 +121,7 @@
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SymmetryOperationsType">
<xsd:sequence>
<xsd:element maxOccurs="48" minOccurs="1" name="symOp" type="SymOpMatrixType"/>
......@@ -236,7 +236,7 @@
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="Double4DVecType">
<xsd:restriction base="DoubleVecType">
<xsd:length value="4"/>
......@@ -247,6 +247,12 @@
<xsd:list itemType="xsd:integer"/>
</xsd:simpleType>
<xsd:simpleType name="Integer4DVecType">
<xsd:restriction base="IntegerVecType">
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="SymOpMatrixType">
<xsd:sequence>
<xsd:element name="row-1" type="Double4DVecType"/>
......@@ -273,7 +279,7 @@
<xsd:attribute name="lexp" type="xsd:integer" use="optional" default="16"/>
<xsd:attribute name="ewaldlambda" type="xsd:integer" use="optional" default="3"/>
</xsd:complexType>
<xsd:simpleType name="XCFunctionalEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="x-a"/>
......@@ -318,7 +324,7 @@
<xsd:attribute name="idsprs" type="xsd:integer" use="required"/>
<xsd:attribute name="chng" type="xsd:double" use="required"/>
</xsd:complexType>
<xsd:complexType name="GGAPrintingType">
<xsd:attribute name="iggachk" type="xsd:integer" use="required"/>
<xsd:attribute name="idsprs0" type="xsd:integer" use="required"/>
......@@ -354,7 +360,7 @@
</xsd:complexType>
<xsd:complexType name="SpeciesType">
<xsd:sequence>
<xsd:element name="mtSphere" type="MTSphereType"/>
......@@ -476,21 +482,21 @@
<xsd:restriction base="xsd:string">
<xsd:pattern value="([1-9])?[0-9](((-([1-9])?[0-9])?)|(,([1-9])?[0-9])+)"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:simpleType>
<xsd:simpleType name="MainQuantumNumberType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[1-9]([0-9])?(,[1-9]([0-9])?)*"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:simpleType>
<xsd:simpleType name="EParamSelectionEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="SCLO"/>
<xsd:enumeration value="HELO"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="CutoffsType">
<xsd:attribute name="Kmax" type="xsd:string" use="required"/>
<xsd:attribute name="Gmax" type="xsd:string" use="required"/>
......@@ -513,13 +519,7 @@
<xsd:complexType name="BZIntegrationType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="kPointMesh" type="KPointMeshType"/>
<xsd:element name="kPointCount" type="KPointCountType"/>
<xsd:element name="kPointList" type="KPointListType"/>
<xsd:element name="kPointDensity" type="KPointDensityType"/>
</xsd:choice>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="altKPointSet" type="AltKPointSetType"/>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="kPointList" type="KPointListType"/>
</xsd:sequence>
<xsd:attribute name="valenceElectrons" type="xsd:string" use="optional"/>
<xsd:attribute default="hist" name="mode" type="BZIntegrationModeEnum" use="optional"/>
......@@ -535,7 +535,7 @@
<xsd:attribute default="F" name="off" type="FleurBool" use="optional"/>
<xsd:attribute default="T" name="soc66" type="FleurBool" use="optional"/>
</xsd:complexType>
<xsd:complexType name="SCFLoopType">
<xsd:attribute name="itmax" type="xsd:positiveInteger" use="required"/>
<xsd:attribute default="99" name="maxIterBroyd" type="xsd:nonNegativeInteger" use="optional"/>
......@@ -573,7 +573,7 @@
<xsd:attribute name="nnne" type="xsd:integer" use="required"/>
<xsd:attribute name="pallst" type="FleurBool" use="required"/>
</xsd:complexType>
<xsd:complexType name="GeometryOptimizerType">
<xsd:attribute name="l_f" type="FleurBool" use="required"/>
<xsd:attribute name="forcealpha" type="xsd:string" use="optional" default="0" />
......@@ -605,25 +605,6 @@
<xsd:attribute name="sigma" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="AltKPointSetType">
<xsd:sequence>
<xsd:choice>
<xsd:element name="kPointMesh" type="KPointMeshType"/>
<xsd:element name="kPointCount" type="KPointCountType"/>
<xsd:element name="kPointList" type="KPointListType"/>
<xsd:element name="kPointDensity" type="KPointDensityType"/>
<xsd:element name="kPointListFile" type="KPointListFileType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute name="purpose" type="KPointSetPurposeEnum" use="required"/>
</xsd:complexType>
<xsd:complexType name="KPointMeshType">
<xsd:attribute name="nx" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="ny" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="nz" type="xsd:positiveInteger" use="required"/>
<xsd:attribute name="gamma" type="FleurBool" use="required"/>
</xsd:complexType>
<xsd:complexType name="KPointCountType">
<xsd:sequence>
......@@ -636,11 +617,27 @@
<xsd:complexType name="KPointListType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="kPoint" type="KPointType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tetraeder" type="TetraederType"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="count" type="xsd:nonNegativeInteger" use="optional"/>
</xsd:complexType>
<xsd:complexType name="TetraederType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="tet" type="TetType"/>
</xsd:sequence>
<xsd:attribute name="ntet" type="xsd:nonNegativeInteger" use="optional"/>
</xsd:complexType>
<xsd:complexType name="TetType">
<xsd:simpleContent>
<xsd:extension base="Integer4DVecType">
<xsd:attribute name="vol" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="KPointDensityType">
<xsd:attribute name="denX" type="xsd:double" use="required"/>
<xsd:attribute name="denY" type="xsd:double" use="required"/>
......@@ -655,7 +652,7 @@
<xsd:complexType name="SpecialPointType">
<xsd:simpleContent>
<xsd:extension base="String3DVecType">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
......@@ -663,11 +660,11 @@
<xsd:complexType name="KPointType">
<xsd:simpleContent>
<xsd:extension base="Double3DVecType">
<xsd:attribute name="weight" type="xsd:string" use="required"/>
<xsd:attribute name="weight" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="SpinSpiralQPointMeshType">
<xsd:attribute name="qx" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="qy" type="xsd:nonNegativeInteger" use="required"/>
......@@ -712,7 +709,7 @@
<xsd:attribute default="10" name="nqr" type="xsd:positiveInteger" use="optional"/>
<xsd:attribute default="0.024" name="alpha_Ex" type="xsd:double" use="optional"/>
<xsd:attribute default="0.05" name="beta_Ex" type="xsd:double" use="optional"/>
<xsd:attribute default="155" name="I_initial" type="xsd:double" use="optional"/>
<xsd:attribute default="155" name="I_initial" type="xsd:double" use="optional"/>
</xsd:complexType>
<xsd:complexType name="MagneticCircularDichroismType">
......@@ -759,7 +756,7 @@
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="RelaxHistType">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="step" type="RelaxStepType" />
......@@ -816,7 +813,7 @@
<xsd:attribute name="supercellZ" type="xsd:positiveInteger" use="required"/>
</xsd:complexType>
<xsd:complexType name="OutputType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="0" name="checks" type="ChecksType"/>
......@@ -828,7 +825,7 @@
<xsd:element maxOccurs="1" minOccurs="0" name="coreSpectrum" type="CoreSpecOutputType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="wannier" type="WannierOutputType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="magneticCircularDichroism" type="MagneticCircularDichroismType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="unfoldingBand" type="UnfoldingBandType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="unfoldingBand" type="UnfoldingBandType"/>
</xsd:all>
<xsd:attribute default="F" name="dos" type="FleurBool" use="optional"/>
<xsd:attribute default="F" name="band" type="FleurBool" use="optional"/>
......@@ -872,7 +869,7 @@
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MixingEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="straight"/>
......@@ -963,7 +960,7 @@
<xsd:simpleType name="CoreConfigEnum">
<xsd:union memberTypes="ElectronStateEnum NobleGasConfigEnum"/>
</xsd:simpleType>
<xsd:simpleType name="FleurBool">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="F"/>
......
......@@ -46,16 +46,16 @@ SUBROUTINE stden(mpi,sphhar,stars,atoms,sym,DIMENSION,vacuum,&
TYPE(t_enpara) :: enpara
! Local Scalars
REAL d,del,fix,h,r,rnot,z,bm,qdel,va
REAL denz1(1,1),vacxpot(1,1),vacpot(1,1)
INTEGER i,ivac,iza,j,jr,k,n,n1,ispin
INTEGER nw,ilo,natot,nat
REAL denz1(1,1),vacxpot(1,1),vacpot(1,1)