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 4ade8224 authored by Gustav Bihlmayer's avatar Gustav Bihlmayer
Browse files

Corrected representation of symmetry elements in internal coordinates

for centered lattices in atom_sym.f. If generators were given, atomid()
was wrong - corrected also in atom_sym.f. Some formatting of output
improved in atom_input.f, inpgen.f90, symproperties.f, and set_inp.f90.
Calculation of bbmat fixed in setab.f.
parent 45814d81
...@@ -292,7 +292,7 @@ ...@@ -292,7 +292,7 @@
ENDIF ENDIF
! ===> local orbitals ! ===> local orbitals
IF (lo0 /= ' ') THEN IF (lo0 /= ' ') THEN
WRITE (6,'(6a,i3,7a,i3,3a,a80)') WRITE (6,'(a6,i3,a7,i3,a3,a80)')
& "nlod =",nlod0," llod =",llod," : ",lo0 & "nlod =",nlod0," llod =",llod," : ",lo0
lo(n) = lo0 lo(n) = lo0
IF (nlod0 > atoms%nlod) IF (nlod0 > atoms%nlod)
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
!---->Automatic arrays !---->Automatic arrays
INTEGER nneq(natmax),icount(nop48*natmax),imap(natmax) INTEGER nneq(natmax),icount(nop48*natmax),imap(natmax)
INTEGER ity(nop48*natmax),index_op(nop48) INTEGER ity(nop48*natmax),index_op(nop48)
REAL tpos(3,nop48*natmax) REAL tpos(3,nop48*natmax),atomid2(natmax)
REAL tr(3),tt(3),disp(3,natmax) REAL tr(3),tt(3),disp(3,natmax)
INTEGER mp(3,3),mtmp(3,3) INTEGER mp(3,3),mtmp(3,3)
...@@ -140,6 +140,14 @@ ...@@ -140,6 +140,14 @@
IF ( mmrot(1,1,1)==0 ) THEN ! &gen was used IF ( mmrot(1,1,1)==0 ) THEN ! &gen was used
!---> save generators !---> save generators
IF (cartesian) THEN ! convert to lattice coords. if necessary
DO ng = 2, ngen+1
mmrot2(:,:,1) = matmul( bs, mmrot(:,:,ng) )
mmrot(:,:,ng) = matmul( mmrot2(:,:,1), as )
ttr2(:,1) = matmul( bs, ttr(:,ng) )
ttr(:,ng) = ttr2(:,1)
ENDDO
ENDIF
mmrot2(:,:,1:ngen) = mmrot(:,:,2:ngen+1) mmrot2(:,:,1:ngen) = mmrot(:,:,2:ngen+1)
ttr2(:,1:ngen) = ttr(:,2:ngen+1) ttr2(:,1:ngen) = ttr(:,2:ngen+1)
...@@ -334,10 +342,11 @@ ...@@ -334,10 +342,11 @@
natrep(na+nn) = na + 1 natrep(na+nn) = na + 1
natmap(na+nn) = na + nn natmap(na+nn) = na + nn
pos(:,na+nn) = tpos(:,na+nn) pos(:,na+nn) = tpos(:,na+nn)
! atomid(na+nn) = atomid(n) ! gu? atomid2(na+nn) = atomid(n)
ENDDO ENDDO
na = na + neq(n) na = na + neq(n)
ENDDO ENDDO
atomid = atomid2
!---> check, that we have !---> check, that we have
......
...@@ -80,7 +80,7 @@ PROGRAM inpgen ...@@ -80,7 +80,7 @@ PROGRAM inpgen
IF (.not.input%film) vacuum%dvac=a3(3) IF (.not.input%film) vacuum%dvac=a3(3)
WRITE (6,*) WRITE (6,*)
WRITE (6,*) title WRITE (6,*) title
WRITE (6,*) 'film=',input%film,'cal_symm=',cal_symm WRITE (6,*) 'film=',input%film,'cartesian=',cartesian
WRITE (6,*) 'checkinp=',checkinp,'symor=',sym%symor WRITE (6,*) 'checkinp=',checkinp,'symor=',sym%symor
WRITE (6,*) WRITE (6,*)
WRITE (6,'(a5,3f10.5)') 'a1 = ',a1(:) WRITE (6,'(a5,3f10.5)') 'a1 = ',a1(:)
......
...@@ -315,16 +315,16 @@ ...@@ -315,16 +315,16 @@
!HF !HF
! rounding ! rounding
atoms%rmt(:) = real(INT( atoms%rmt(:) * 100 ) / 100.) atoms%rmt(:) = real(NINT( atoms%rmt(:) * 100 ) / 100.)
atoms%dx(:) = real(INT( atoms%dx(:) * 1000) / 1000.) atoms%dx(:) = real(NINT( atoms%dx(:) * 1000) / 1000.)
stars%gmax = real(INT( stars%gmax * 10 ) / 10.) stars%gmax = real(NINT( stars%gmax * 10 ) / 10.)
input%rkmax = real(INT( input%rkmax * 10 ) / 10.) input%rkmax = real(NINT( input%rkmax * 10 ) / 10.)
xcpot%gmaxxc = real(INT( xcpot%gmaxxc * 10 ) / 10.) xcpot%gmaxxc = real(NINT( xcpot%gmaxxc * 10 ) / 10.)
gcutm = real(INT( gcutm * 10 ) / 10.) gcutm = real(INT( gcutm * 10 ) / 10.)
hybrid%gcutm2 = real(INT( hybrid%gcutm2 * 10 ) / 10.) hybrid%gcutm2 = real(NINT( hybrid%gcutm2 * 10 ) / 10.)
IF (input%film) THEN IF (input%film) THEN
vacuum%dvac = real(INT(vacuum%dvac*100+1)/100.) vacuum%dvac = real(NINT(vacuum%dvac*100)/100.)
dtild = real(INT(dtild*100+1)/100.) dtild = real(NINT(dtild*100)/100.)
ENDIF ENDIF
! !
! read some lapw input ! read some lapw input
......
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
ENDIF ENDIF
aamat=matmul(transpose(amat),amat) aamat=matmul(transpose(amat),amat)
bbmat=matmul(transpose(bmat),bmat) bbmat=matmul(bmat,transpose(bmat))
END SUBROUTINE setab END SUBROUTINE setab
END MODULE m_setab END MODULE m_setab
...@@ -89,9 +89,10 @@ ...@@ -89,9 +89,10 @@
WRITE(6,*) WRITE(6,*)
WRITE(6,*) 'DBG: symor,zorth,oldfleur :', symor,zorth,oldfleur WRITE(6,*) 'DBG: symor,zorth,oldfleur :', symor,zorth,oldfleur
WRITE(6,*) 'DBG: optype :', optype(1:nops) WRITE(6,'(x,a13,48i5)') 'DBG: optype :', optype(1:nops)
WRITE(6,*) 'DBG: invsym,invs,zrfs,invs2 :', invsym,invs,zrfs,invs2 WRITE(6,*) 'DBG: invsym,invs,zrfs,invs2 :', invsym,invs,zrfs,invs2
WRITE(6,*) 'DBG: (before reorder) invsop,zrfsop,invs2op :', WRITE(6,'(x,a45,3i5)')
& 'DBG: (before reorder) invsop,zrfsop,invs2op :',
& invsop,zrfsop,invs2op & invsop,zrfsop,invs2op
IF ( (.not.oldfleur) .or. (.not.zorth) ) THEN IF ( (.not.oldfleur) .or. (.not.zorth) ) THEN
......
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