Commit a5dd27db authored by Daniel Wortmann's avatar Daniel Wortmann

Merge branch 'develop' of fleur-git:fleur into develop

parents 0d2aa259 21bea955
......@@ -151,7 +151,7 @@ CONTAINS
WRITE(attributes(4),'(f15.10)') qmtl(1)
WRITE(attributes(5),'(f15.10)') qmtl(2)
WRITE(attributes(6),'(f15.10)') qmtl(3)
CALL writeXMLElementForm('mtCharge',(/'atomType','total','s','p','d','f'/),attributes,&
CALL writeXMLElementForm('mtCharge',(/'atomType','total ','s ','p ','d ','f '/),attributes,&
reshape((/8,5,1,1,1,1,6,15,15,15,15,15/),(/6,2/)))
!+soc
......
#Cmake file for juropa
#Cmake file for jureca
# this requires the following modules to be loaded:
# Intel, ParaStationMPI, libxml2, imkl, CMake
set(CMAKE_Fortran_COMPILER mpif90)
enable_language(Fortran)
enable_language(C Fortran)
set(Fleur_uses_serial FALSE)
find_package(LibXml2 REQUIRED)
set(CMAKE_C_FLAGS "-I${LIBXML2_INCLUDE_DIR}")
if ((NOT DEFINED ENV{NO_HDF}) AND (DEFINED ENV{HDF5_ROOT}))
set (HDF5_INCL "-I$ENV{HDF5_ROOT}/include")
set(HDF5_LIBS "-L$ENV{HDF5_ROOT}/lib -lhdf5_fortran -lhdf5 -lz")
......@@ -20,10 +28,10 @@ else ()
message(FATAL_ERROR "No MPI found, your compiler should be set to mpif90 ...")
endif ()
set(LAPACK_LIBS "-mkl -lmatmul -openmp -lpthread")
set(LAPACK_LIBS "-lxml2 -mkl -lmatmul -qopenmp -lpthread")
set(CMAKE_Fortran_FLAGS "${HDF5_INCL} -mkl -warn nousage -assume byterecl -r8" )
set(CMAKE_Fortran_FLAGS_RELEASE " -O4 -g -openmp -xSSE3 -axSSE4.2 -parallel" )
set(CMAKE_Fortran_FLAGS_DEBUG " -O0 -g -openmp" )
set(CMAKE_Fortran_FLAGS_RELEASE " -O4 -g -qopenmp -xSSE3 -axSSE4.2 -parallel" )
set(CMAKE_Fortran_FLAGS_DEBUG " -O0 -g -qopenmp" )
if (DEFINED ENV{SCALAPACK_ROOT})
set(Fleur_uses_SCALAPACK TRUE)
......
......@@ -142,7 +142,7 @@ CONTAINS
!
IF (vacuum%nstm.EQ.3) THEN
call juDFT_error("nstm=3 not implemented in doswrite")
OPEN (89,file='tmp_vacwave',status='old',access='direct')!, recl=reclength_vw)
!OPEN (89,file='tmp_vacwave',status='old',access='direct')!, recl=reclength_vw)
ALLOCATE ( ac(n2max,DIMENSION%neigd),bc(n2max,DIMENSION%neigd) )
DO ikpt = 1,kpts%nkpt
WRITE(*,*) 'Read rec',ikpt,'from vacwave'
......
......@@ -140,13 +140,14 @@ CONTAINS
el(l,n,jsp) = e
IF (mpi%irank == 0) THEN
attributes = ''
WRITE(attributes(1),'(i0)'), n
WRITE(attributes(2),'(i0)'), jsp
WRITE(attributes(3),'(i0,a1)'), nqn(l), ch(l)
WRITE(attributes(4),'(f16.10)'), e_lo
WRITE(attributes(5),'(f16.10)'), e_up
WRITE(attributes(6),'(f16.10)'), e
CALL writeXMLElementForm('atomicEP',(/'atomType','spin','branch','branchLowest','branchHighest','value'/),&
WRITE(attributes(1),'(i0)') n
WRITE(attributes(2),'(i0)') jsp
WRITE(attributes(3),'(i0,a1)') nqn(l), ch(l)
WRITE(attributes(4),'(f16.10)') e_lo
WRITE(attributes(5),'(f16.10)') e_up
WRITE(attributes(6),'(f16.10)') e
CALL writeXMLElementForm('atomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHeighes','value '/),&
attributes,reshape((/10,4,6,12,13,5,6,1,3,16,16,16/),(/6,2/)))
WRITE(6,'(a6,i3,i2,a1,a12,f6.2,a3,f6.2,a13,f8.4)') ' Atom',n,nqn(l),ch(l),' branch from',e_lo, ' to',e_up,' htr. ; e_l =',e
ENDIF
......@@ -304,13 +305,14 @@ CONTAINS
IF (mpi%irank == 0) THEN
attributes = ''
WRITE(attributes(1),'(i0)'), n
WRITE(attributes(2),'(i0)'), jsp
WRITE(attributes(3),'(i0,a1)'), nqn_lo(ilo), ch(l)
WRITE(attributes(4),'(f16.10)'), e_lo
WRITE(attributes(5),'(f16.10)'), e_up
WRITE(attributes(6),'(f16.10)'), e
CALL writeXMLElementForm('loAtomicEP',(/'atomType','spin','branch','branchLowest','branchHighest','value'/),&
WRITE(attributes(1),'(i0)') n
WRITE(attributes(2),'(i0)') jsp
WRITE(attributes(3),'(i0,a1)') nqn_lo(ilo), ch(l)
WRITE(attributes(4),'(f16.10)') e_lo
WRITE(attributes(5),'(f16.10)') e_up
WRITE(attributes(6),'(f16.10)') e
CALL writeXMLElementForm('loAtomicEP',(/'atomType ','spin ','branch ',&
'branchLowest ','branchHeighes','value '/),&
attributes,reshape((/8,4,6,12,13,5,6,1,3,16,16,16/),(/6,2/)))
WRITE(6,'(a6,i3,i2,a1,a12,f6.2,a3,f6.2,a13,f8.4)') ' Atom',n,nqn_lo(ilo),ch(l),' branch from', e_lo,' to',e_up,' htr. ; e_l =',e
ENDIF
......
......@@ -124,8 +124,8 @@ CONTAINS
gap = e(INDEX(nstef+1)) - results%ef
IF ( mpi%irank == 0 ) THEN
attributes = ''
WRITE(attributes(1),'(f20.10)'), gap*hartree_to_ev_const
WRITE(attributes(2),'(a)'), 'eV'
WRITE(attributes(1),'(f20.10)') gap*hartree_to_ev_const
WRITE(attributes(2),'(a)') 'eV'
CALL writeXMLElement('bandgap',(/'value','units'/),attributes)
WRITE (6,FMT=8050) gap
END IF
......
......@@ -144,12 +144,12 @@ CONTAINS
WRITE (6,'(i5,a14)') ne(k,jsp),' eigenvalues :'
WRITE (6,'(8f12.6)') (eig(i,k,jsp),i=1,ne(k,jsp))
attributes = ''
WRITE(attributes(1),'(i0)'), jsp
WRITE(attributes(2),'(i0)'), k
WRITE(attributes(3),'(f15.8)'), kpts%bk(1,k)
WRITE(attributes(4),'(f15.8)'), kpts%bk(2,k)
WRITE(attributes(5),'(f15.8)'), kpts%bk(3,k)
CALL writeXMLElementPoly('eigenvaluesAt',(/'spin','ikpt','k_x','k_y','k_z'/),attributes,eig(1:ne(k,jsp),k,jsp))
WRITE(attributes(1),'(i0)') jsp
WRITE(attributes(2),'(i0)') k
WRITE(attributes(3),'(f15.8)') kpts%bk(1,k)
WRITE(attributes(4),'(f15.8)') kpts%bk(2,k)
WRITE(attributes(5),'(f15.8)') kpts%bk(3,k)
CALL writeXMLElementPoly('eigenvaluesAt',(/'spin','ikpt','k_x ','k_y ','k_z '/),attributes,eig(1:ne(k,jsp),k,jsp))
END IF
nv= -1
!
......@@ -230,8 +230,8 @@ CONTAINS
DEALLOCATE ( idxeig,idxjsp,idxkpt,index,e,eig,we )
attributes = ''
WRITE(attributes(1),'(f20.10)'), results%ef
WRITE(attributes(2),'(a)'), 'htr'
WRITE(attributes(1),'(f20.10)') results%ef
WRITE(attributes(2),'(a)') 'htr'
IF (mpi%irank.EQ.0) CALL writeXMLElement('FermiEnergy',(/'value','units'/),attributes(1:2))
RETURN
......
......@@ -40,9 +40,9 @@ MODULE m_xmlOutput
CHARACTER(LEN=8) :: date
CHARACTER(LEN=10) :: time
CHARACTER(LEN=5) :: zone
CHARACTER(LEN=10) :: zone
CHARACTER(LEN=10) :: dateString
CHARACTER(LEN=8) :: timeString
CHARACTER(LEN=10) :: timeString
maxNumElements = 10
ALLOCATE(elementList(maxNumElements))
......@@ -64,9 +64,9 @@ MODULE m_xmlOutput
CHARACTER(LEN=8) :: date
CHARACTER(LEN=10) :: time
CHARACTER(LEN=5) :: zone
CHARACTER(LEN=10) :: zone
CHARACTER(LEN=10) :: dateString
CHARACTER(LEN=8) :: timeString
CHARACTER(LEN=10) :: timeString
DO WHILE (currentElementIndex.NE.0)
CALL closeXMLElement(elementList(currentElementIndex))
......@@ -105,13 +105,13 @@ MODULE m_xmlOutput
DO i = 1, SIZE(attributeValues)
SELECT TYPE (attributeValues)
TYPE IS(INTEGER)
WRITE(charAttributeValues(i),'(i0)'), attributeValues(i)
WRITE(charAttributeValues(i),'(i0)') attributeValues(i)
TYPE IS(REAL)
WRITE(charAttributeValues(i),'(f19.10)'), attributeValues(i)
WRITE(charAttributeValues(i),'(f19.10)') attributeValues(i)
TYPE IS(LOGICAL)
WRITE(charAttributeValues(i),'(l1)'), attributeValues(i)
WRITE(charAttributeValues(i),'(l1)') attributeValues(i)
TYPE IS(CHARACTER(LEN=*))
WRITE(charAttributeValues(i),'(a)'), TRIM(ADJUSTL(attributeValues(i)))
WRITE(charAttributeValues(i),'(a)') TRIM(ADJUSTL(attributeValues(i)))
CLASS DEFAULT
STOP 'Type of attributeValues not allowed'
END SELECT
......@@ -121,13 +121,13 @@ MODULE m_xmlOutput
DO i = 1, SIZE(contentList)
SELECT TYPE(contentList)
TYPE IS(INTEGER)
WRITE(charContentList(i),'(i0)'), contentList(i)
WRITE(charContentList(i),'(i0)') contentList(i)
TYPE IS(REAL)
WRITE(charContentList(i),'(f19.10)'), contentList(i)
WRITE(charContentList(i),'(f19.10)') contentList(i)
TYPE IS(LOGICAL)
WRITE(charContentList(i),'(l1)'), contentList(i)
WRITE(charContentList(i),'(l1)') contentList(i)
TYPE IS(CHARACTER(LEN=*))
WRITE(charContentList(i),'(a)'), TRIM(ADJUSTL(contentList(i)))
WRITE(charContentList(i),'(a)') TRIM(ADJUSTL(contentList(i)))
CLASS DEFAULT
STOP 'Type of contentList not allowed'
END SELECT
......@@ -332,13 +332,13 @@ MODULE m_xmlOutput
DO i = 1, SIZE(attributeValues)
SELECT TYPE (attributeValues)
TYPE IS(INTEGER)
WRITE(charAttributeValues(i),'(i0)'), attributeValues(i)
WRITE(charAttributeValues(i),'(i0)') attributeValues(i)
TYPE IS(REAL)
WRITE(charAttributeValues(i),'(f19.10)'), attributeValues(i)
WRITE(charAttributeValues(i),'(f19.10)') attributeValues(i)
TYPE IS(LOGICAL)
WRITE(charAttributeValues(i),'(l1)'), attributeValues(i)
WRITE(charAttributeValues(i),'(l1)') attributeValues(i)
TYPE IS(CHARACTER(LEN=*))
WRITE(charAttributeValues(i),'(a)'), TRIM(ADJUSTL(attributeValues(i)))
WRITE(charAttributeValues(i),'(a)') TRIM(ADJUSTL(attributeValues(i)))
CLASS DEFAULT
STOP 'Type of attributeValues not allowed'
END SELECT
......
......@@ -314,9 +314,9 @@ CONTAINS
hybrid%ddist(js) = 1000*SQRT(ABS(dist(js)/cell%vol))
attributes = ''
WRITE(attributes(1),'(i0)'), js
WRITE(attributes(2),'(f20.10)'), 1000*SQRT(ABS(dist(js)/cell%vol))
CALL writeXMLElementForm('chargeDensity',(/'spin','distance'/),attributes,reshape((/4,8,1,20/),(/2,2/)))
WRITE(attributes(1),'(i0)') js
WRITE(attributes(2),'(f20.10)') 1000*SQRT(ABS(dist(js)/cell%vol))
CALL writeXMLElementForm('chargeDensity',(/'spin ','distance'/),attributes,reshape((/4,8,1,20/),(/2,2/)))
IF( hybrid%l_calhf ) THEN
WRITE (16,FMT=7901) js,iter,1000*SQRT(ABS(dist(js)/cell%vol))
WRITE ( 6,FMT=7901) js,iter,1000*SQRT(ABS(dist(js)/cell%vol))
......
......@@ -66,11 +66,11 @@ CONTAINS
! .. Local Scalars ..
REAL rhs,totz, eigSum
INTEGER n,j,nt,iter,i
CHARACTER(LEN=20) totalEnergyString
! .. Local Arrays ..
REAL vmd(atoms%ntype),zintn_r(atoms%ntype)
REAL dpj(atoms%jmtd)
CHARACTER(LEN=20) :: attributes(3)
!.....density
REAL, ALLOCATABLE :: rho(:,:,:,:),rht(:,:,:)
COMPLEX, ALLOCATABLE :: qpw(:,:),rhtxy(:,:,:,:)
......@@ -239,11 +239,13 @@ CONTAINS
WRITE (16,FMT=8081) results%tote-0.5e0*results%ts
END IF
WRITE(totalEnergyString,'(f20.10)'), results%tote
WRITE(attributes(1),'(f20.10)') results%tote
WRITE(attributes(2),'(a)') 'Htr'
WRITE(attributes(3),'(a)') 'HF'
IF (hybrid%l_calhf) THEN
CALL openXMLElementForm('totalEnergy',(/'value','units','comment'/),(/totalEnergyString,'Htr','HF'/),reshape((/40,20/),(/1,2/)))
CALL openXMLElementForm('totalEnergy',(/'value ','units ','comment'/),attributes,reshape((/40,20/),(/1,2/)))
ELSE
CALL openXMLElementForm('totalEnergy',(/'value','units'/),(/totalEnergyString,'Htr'/),reshape((/40,20/),(/1,2/)))
CALL openXMLElementForm('totalEnergy',(/'value','units'/),attributes(1:2),reshape((/40,20/),(/1,2/)))
END IF
CALL openXMLElementFormPoly('sumOfEigenvalues',(/'value'/),(/eigSum/),reshape((/32,20/),(/1,2/)))
CALL writeXMLElementFormPoly('coreElectrons',(/'value'/),(/results%seigc/),reshape((/32,20/),(/1,2/)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment