IffGit has a new shared runner for building Docker images in GitLab CI. Visit https://iffgit.fz-juelich.de/examples/ci-docker-in-docker for more details.

Commit be4e4c69 authored by S.Rost's avatar S.Rost
Browse files

Merge branch 'develop' of iffgit.fz-juelich.de:fleur/fleur into develop

parents 5d3b4879 b23b8550
...@@ -90,7 +90,7 @@ build-intel: ...@@ -90,7 +90,7 @@ build-intel:
paths: paths:
- build.intel - build.intel
script: script:
- set +e && source compilervars.sh intel64 && set -e - set +e && source compilervars.sh intel64 && set -e ; ulimit -s unlimited
- cd /builds/fleur/fleur; FC=mpiifort FLEUR_LIBRARIES="-lmkl_scalapack_lp64;-lmkl_blacs_intelmpi_lp64" ./configure.sh -l intel AUTO ; cd build.intel; make - cd /builds/fleur/fleur; FC=mpiifort FLEUR_LIBRARIES="-lmkl_scalapack_lp64;-lmkl_blacs_intelmpi_lp64" ./configure.sh -l intel AUTO ; cd build.intel; make
only: only:
- schedules - schedules
...@@ -105,7 +105,7 @@ test-intel: ...@@ -105,7 +105,7 @@ test-intel:
paths: paths:
- build.intel - build.intel
script: script:
- set +e && source compilervars.sh intel64 && set -e - set +e && source compilervars.sh intel64 && set -e; ulimit -s unlimited
- cd /builds/fleur/fleur/build.intel;ctest - cd /builds/fleur/fleur/build.intel;ctest
only: only:
- schedules - schedules
......
...@@ -8,8 +8,8 @@ MODULE m_cdncore ...@@ -8,8 +8,8 @@ MODULE m_cdncore
CONTAINS CONTAINS
SUBROUTINE cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,& SUBROUTINE cdncore(mpi,dimension,oneD,input,vacuum,noco,sym,&
stars,cell,sphhar,atoms,vTot,outDen,moments) stars,cell,sphhar,atoms,vTot,outDen,moments,results)
USE m_constants USE m_constants
USE m_cdn_io USE m_cdn_io
...@@ -26,21 +26,22 @@ SUBROUTINE cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,& ...@@ -26,21 +26,22 @@ SUBROUTINE cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,&
IMPLICIT NONE IMPLICIT NONE
TYPE(t_results),INTENT(INOUT) :: results
TYPE(t_mpi),INTENT(IN) :: mpi TYPE(t_mpi), INTENT(IN) :: mpi
TYPE(t_dimension),INTENT(IN) :: dimension TYPE(t_dimension), INTENT(IN) :: dimension
TYPE(t_oneD),INTENT(IN) :: oneD TYPE(t_oneD), INTENT(IN) :: oneD
TYPE(t_input),INTENT(IN) :: input TYPE(t_input), INTENT(IN) :: input
TYPE(t_vacuum),INTENT(IN) :: vacuum TYPE(t_vacuum), INTENT(IN) :: vacuum
TYPE(t_noco),INTENT(IN) :: noco TYPE(t_noco), INTENT(IN) :: noco
TYPE(t_sym),INTENT(IN) :: sym TYPE(t_sym), INTENT(IN) :: sym
TYPE(t_stars),INTENT(IN) :: stars TYPE(t_stars), INTENT(IN) :: stars
TYPE(t_cell),INTENT(IN) :: cell TYPE(t_cell), INTENT(IN) :: cell
TYPE(t_sphhar),INTENT(IN) :: sphhar TYPE(t_sphhar), INTENT(IN) :: sphhar
TYPE(t_atoms),INTENT(IN) :: atoms TYPE(t_atoms), INTENT(IN) :: atoms
TYPE(t_potden),INTENT(IN) :: vTot TYPE(t_potden), INTENT(IN) :: vTot
TYPE(t_potden),INTENT(INOUT) :: outDen TYPE(t_potden), INTENT(INOUT) :: outDen
TYPE(t_moments),INTENT(INOUT) :: moments TYPE(t_moments), INTENT(INOUT) :: moments
TYPE(t_results), INTENT(INOUT) :: results
INTEGER :: jspin, n, iType INTEGER :: jspin, n, iType
REAL :: seig, rhoint, momint REAL :: seig, rhoint, momint
...@@ -127,7 +128,7 @@ SUBROUTINE cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,& ...@@ -127,7 +128,7 @@ SUBROUTINE cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,&
outDen%pw,outDen%vacxy,outDen%mt,outDen%vacz) outDen%pw,outDen%vacxy,outDen%mt,outDen%vacz)
ELSE IF (mpi%irank.EQ.0) THEN ELSE IF (mpi%irank.EQ.0) THEN
DO iType = 1,atoms%ntype DO iType = 1,atoms%ntype
outDen%pw(1,jspin) = outDen%pw(1,jspin) + qint(iType,jspin)/input%jspins/cell%volint outDen%pw(1,jspin) = outDen%pw(1,jspin) + qint(iType,jspin) / (input%jspins * cell%volint)
END DO END DO
END IF END IF
END IF END IF
......
...@@ -38,7 +38,7 @@ CONTAINS ...@@ -38,7 +38,7 @@ CONTAINS
! .. Local Scalars .. ! .. Local Scalars ..
REAL e,fj,fl,fn,q,rad,rhos,rhs,sea,sume,t2 REAL e,fj,fl,fn,q,rad,rhos,rhs,sea,sume,t2
REAL d,dxx,rn,rnot,z,t1,rr,r,lambd,c,bmu,weight REAL d,dxx,rn,rnot,z,t1,rr,r,lambd,c,bmu,weight
INTEGER i,j,jatom,jm,korb,n,ncmsh,nm,nm1,nst ,l,ierr INTEGER i,j,jatom,korb,n,ncmsh,nm,nm1,nst ,l,ierr
! .. ! ..
! .. Local Arrays .. ! .. Local Arrays ..
...@@ -54,7 +54,6 @@ CONTAINS ...@@ -54,7 +54,6 @@ CONTAINS
! !
IF (input%frcor) THEN IF (input%frcor) THEN
DO n = 1,atoms%ntype DO n = 1,atoms%ntype
jm = atoms%jri(n)
rnot = atoms%rmsh(1,n) ; dxx = atoms%dx(n) rnot = atoms%rmsh(1,n) ; dxx = atoms%dx(n)
ncmsh = NINT( LOG( (atoms%rmt(n)+10.0)/rnot ) / dxx + 1 ) ncmsh = NINT( LOG( (atoms%rmt(n)+10.0)/rnot ) / dxx + 1 )
ncmsh = MIN( ncmsh, DIMENSION%msh ) ncmsh = MIN( ncmsh, DIMENSION%msh )
...@@ -114,7 +113,7 @@ CONTAINS ...@@ -114,7 +113,7 @@ CONTAINS
ELSE ELSE
t2 = vrd(atoms%jri(jatom)) / ( atoms%jri(jatom) - ncmsh ) t2 = vrd(atoms%jri(jatom)) / ( atoms%jri(jatom) - ncmsh )
ENDIF ENDIF
IF ( atoms%jri(jatom) .LT. ncmsh) THEN IF ( atoms%jri(jatom) < ncmsh) THEN
DO i = atoms%jri(jatom) + 1,ncmsh DO i = atoms%jri(jatom) + 1,ncmsh
rhoss(i) = 0. rhoss(i) = 0.
IF (input%l_core_confpot) THEN IF (input%l_core_confpot) THEN
...@@ -130,31 +129,32 @@ CONTAINS ...@@ -130,31 +129,32 @@ CONTAINS
nst = atoms%ncst(jatom) ! for lda+U nst = atoms%ncst(jatom) ! for lda+U
IF (input%gw.EQ.1 .OR. input%gw.EQ.3)& IF (input%gw==1 .OR. input%gw==3)&
& WRITE(15) nst,atoms%rmsh(1:atoms%jri(jatom),jatom) & WRITE(15) nst,atoms%rmsh(1:atoms%jri(jatom),jatom)
stateEnergies = 0.0 stateEnergies = 0.0
DO korb = 1,nst DO korb = 1,nst
IF (occ(korb).EQ.0) CYCLE IF (occ(korb) /= 0.0) THEN
fn = nprnc(korb) fn = nprnc(korb)
fj = iabs(kappa(korb)) - .5e0 fj = iabs(kappa(korb)) - .5e0
weight = 2*fj + 1.e0 weight = 2*fj + 1.e0
IF (bmu > 99.) weight = occ(korb) IF (bmu > 99.) weight = occ(korb)
fl = fj + (.5e0)*isign(1,kappa(korb)) fl = fj + (.5e0)*isign(1,kappa(korb))
e = -2* (z/ (fn+fl))**2 e = -2* (z/ (fn+fl))**2
CALL differ(fn,fl,fj,c,z,dxx,rnot,rn,d,ncmsh,vrd, e, a,b,ierr) CALL differ(fn,fl,fj,c,z,dxx,rnot,rn,d,ncmsh,vrd, e, a,b,ierr)
stateEnergies(korb) = e stateEnergies(korb) = e
WRITE (6,FMT=8010) fn,fl,fj,e,weight WRITE (6,FMT=8010) fn,fl,fj,e,weight
WRITE (16,FMT=8010) fn,fl,fj,e,weight WRITE (16,FMT=8010) fn,fl,fj,e,weight
IF (ierr/=0) CALL juDFT_error("error in core-level routine" ,calledby ="cored") IF (ierr/=0) CALL juDFT_error("error in core-level routine" ,calledby ="cored")
IF (input%gw.EQ.1 .OR. input%gw.EQ.3) WRITE (15) NINT(fl),weight,e,& IF (input%gw==1 .OR. input%gw==3) WRITE (15) NINT(fl),weight,e,&
a(1:atoms%jri(jatom)),b(1:atoms%jri(jatom)) a(1:atoms%jri(jatom)),b(1:atoms%jri(jatom))
sume = sume + weight*e/input%jspins sume = sume + weight*e/input%jspins
DO j = 1,ncmsh DO j = 1,ncmsh
rhcs(j) = weight* (a(j)**2+b(j)**2) rhcs(j) = weight* (a(j)**2+b(j)**2)
rhoss(j) = rhoss(j) + rhcs(j) rhoss(j) = rhoss(j) + rhcs(j)
ENDDO ENDDO
ENDIF
ENDDO ENDDO
! ---->update spherical charge density rho with the core density. ! ---->update spherical charge density rho with the core density.
......
...@@ -101,7 +101,7 @@ SUBROUTINE cdngen(eig_id,mpi,input,banddos,sliceplot,vacuum,& ...@@ -101,7 +101,7 @@ SUBROUTINE cdngen(eig_id,mpi,input,banddos,sliceplot,vacuum,&
jspmax = input%jspins jspmax = input%jspins
IF (noco%l_mperp) jspmax = 1 IF (noco%l_mperp) jspmax = 1
DO jspin = 1,jspmax DO jspin = 1,jspmax
CALL cdnvalJob%init(mpi,input,kpts,banddos,noco,results,jspin,sliceplot) CALL cdnvalJob%init(mpi,input,kpts,noco,results,jspin,sliceplot,banddos)
CALL cdnval(eig_id,mpi,kpts,jspin,noco,input,banddos,cell,atoms,enpara,stars,vacuum,dimension,& CALL cdnval(eig_id,mpi,kpts,jspin,noco,input,banddos,cell,atoms,enpara,stars,vacuum,dimension,&
sphhar,sym,vTot,oneD,cdnvalJob,outDen,regCharges,dos,results,moments,coreSpecInput,mcd,slab,orbcomp) sphhar,sym,vTot,oneD,cdnvalJob,outDen,regCharges,dos,results,moments,coreSpecInput,mcd,slab,orbcomp)
END DO END DO
...@@ -138,8 +138,8 @@ SUBROUTINE cdngen(eig_id,mpi,input,banddos,sliceplot,vacuum,& ...@@ -138,8 +138,8 @@ SUBROUTINE cdngen(eig_id,mpi,input,banddos,sliceplot,vacuum,&
CALL juDFT_end("slice OK",mpi%irank) CALL juDFT_end("slice OK",mpi%irank)
END IF END IF
CALL cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,& CALL cdncore(mpi,dimension,oneD,input,vacuum,noco,sym,&
stars,cell,sphhar,atoms,vTot,outDen,moments) stars,cell,sphhar,atoms,vTot,outDen,moments,results)
CALL enpara%calcOutParams(input,atoms,vacuum,regCharges) CALL enpara%calcOutParams(input,atoms,vacuum,regCharges)
......
...@@ -144,12 +144,12 @@ SUBROUTINE rdmft(eig_id,mpi,input,kpts,banddos,cell,atoms,enpara,stars,vacuum,di ...@@ -144,12 +144,12 @@ SUBROUTINE rdmft(eig_id,mpi,input,kpts,banddos,cell,atoms,enpara,stars,vacuum,di
jspmax = input%jspins jspmax = input%jspins
IF (noco%l_mperp) jspmax = 1 IF (noco%l_mperp) jspmax = 1
DO jspin = 1,jspmax DO jspin = 1,jspmax
CALL cdnvalJob%init(mpi,input,kpts,banddos,noco,results,jspin) CALL cdnvalJob%init(mpi,input,kpts,noco,results,jspin,banddos=banddos)
CALL cdnval(eig_id,mpi,kpts,jsp,noco,input,banddos,cell,atoms,enpara,stars,vacuum,dimension,& CALL cdnval(eig_id,mpi,kpts,jsp,noco,input,banddos,cell,atoms,enpara,stars,vacuum,dimension,&
sphhar,sym,vTot,oneD,cdnvalJob,overallDen,regCharges,dos,results,moments) sphhar,sym,vTot,oneD,cdnvalJob,overallDen,regCharges,dos,results,moments)
END DO END DO
CALL cdncore(results,mpi,dimension,oneD,input,vacuum,noco,sym,& CALL cdncore(mpi,dimension,oneD,input,vacuum,noco,sym,&
stars,cell,sphhar,atoms,vTot,overallDen,moments) stars,cell,sphhar,atoms,vTot,overallDen,moments,results)
IF (mpi%irank.EQ.0) THEN IF (mpi%irank.EQ.0) THEN
CALL qfix(stars,atoms,sym,vacuum,sphhar,input,cell,oneD,overallDen,noco%l_noco,.TRUE.,.true.,fix) CALL qfix(stars,atoms,sym,vacuum,sphhar,input,cell,oneD,overallDen,noco%l_noco,.TRUE.,.true.,fix)
END IF END IF
......
...@@ -445,7 +445,7 @@ SUBROUTINE orbcomp_init(thisOrbcomp,input,banddos,dimension,atoms,kpts) ...@@ -445,7 +445,7 @@ SUBROUTINE orbcomp_init(thisOrbcomp,input,banddos,dimension,atoms,kpts)
END SUBROUTINE orbcomp_init END SUBROUTINE orbcomp_init
SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,banddos,noco,results,jspin,sliceplot) SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,noco,results,jspin,sliceplot,banddos)
USE m_types_setup USE m_types_setup
USE m_types_kpts USE m_types_kpts
...@@ -458,10 +458,10 @@ SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,banddos,noco,results,jspi ...@@ -458,10 +458,10 @@ SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,banddos,noco,results,jspi
TYPE(t_mpi), INTENT(IN) :: mpi TYPE(t_mpi), INTENT(IN) :: mpi
TYPE(t_input), INTENT(IN) :: input TYPE(t_input), INTENT(IN) :: input
TYPE(t_kpts), INTENT(IN) :: kpts TYPE(t_kpts), INTENT(IN) :: kpts
TYPE(t_banddos), INTENT(IN) :: banddos
TYPE(t_noco), INTENT(IN) :: noco TYPE(t_noco), INTENT(IN) :: noco
TYPE(t_results), INTENT(IN) :: results TYPE(t_results), INTENT(IN) :: results
TYPE(t_sliceplot), OPTIONAL, INTENT(IN) :: sliceplot TYPE(t_sliceplot), OPTIONAL, INTENT(IN) :: sliceplot
TYPE(t_banddos), OPTIONAL, INTENT(IN) :: banddos
INTEGER, INTENT(IN) :: jspin INTEGER, INTENT(IN) :: jspin
...@@ -503,7 +503,9 @@ SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,banddos,noco,results,jspi ...@@ -503,7 +503,9 @@ SUBROUTINE cdnvalJob_init(thisCdnvalJob,mpi,input,kpts,banddos,noco,results,jspi
END IF END IF
END DO END DO
IF (banddos%dos) thisCdnvalJob%noccbd(ikpt) = results%neig(ikpt,jsp) IF(PRESENT(banddos)) THEN
IF (banddos%dos) thisCdnvalJob%noccbd(ikpt) = results%neig(ikpt,jsp)
END IF
thisCdnvalJob%nStart(ikpt) = 1 thisCdnvalJob%nStart(ikpt) = 1
thisCdnvalJob%nEnd(ikpt) = thisCdnvalJob%noccbd(ikpt) thisCdnvalJob%nEnd(ikpt) = thisCdnvalJob%noccbd(ikpt)
......
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