Commit 76a88538 authored by Daniel Wortmann's avatar Daniel Wortmann

Added scaling of SOC

parent ca3f78b9
......@@ -145,40 +145,23 @@ CONTAINS
CALL spnorb( atoms,noco,input,mpi, enpara,vr, rsopp,rsoppd,rsopdp,rsopdpd,usdus,&
rsoplop,rsoplopd,rsopdplo,rsopplo,rsoploplop, soangl)
!
l_all = .FALSE.
INQUIRE (file='allbut',exist=l_all)
IF (l_all) THEN
OPEN (1,file='allbut',form='formatted')
READ (1,*) n
WRITE (*,*) 'allbut',n
CLOSE (1)
rsopp(1:n-1,:,:,:) = 0.0 ; rsopp(n+1:atoms%ntype,:,:,:) = 0.0
rsopdp(1:n-1,:,:,:) = 0.0 ; rsopdp(n+1:atoms%ntype,:,:,:) = 0.0
rsoppd(1:n-1,:,:,:) = 0.0 ; rsoppd(n+1:atoms%ntype,:,:,:) = 0.0
rsopdpd(1:n-1,:,:,:) = 0.0 ; rsopdpd(n+1:atoms%ntype,:,:,:) = 0.0
rsoplop(1:n-1,:,:,:) = 0.0 ; rsoplop(n+1:atoms%ntype,:,:,:) = 0.0
rsoplopd(1:n-1,:,:,:) = 0.0 ; rsoplopd(n+1:atoms%ntype,:,:,:) = 0.0
rsopdplo(1:n-1,:,:,:) = 0.0 ; rsopdplo(n+1:atoms%ntype,:,:,:) = 0.0
rsopplo(1:n-1,:,:,:) = 0.0 ; rsopplo(n+1:atoms%ntype,:,:,:) = 0.0
rsoploplop(1:n-1,:,:,:,:) = 0.0 ; rsoploplop(n+1:atoms%ntype,:,:,:,:) = 0.0
ENDIF
l_all = .FALSE.
INQUIRE (file='socscale',exist=l_all)
IF (l_all) THEN
OPEN (1,file='socsacle',form='formatted')
READ (1,*) n
WRITE (*,*) 'SOC scaled by ',n,"%"
CLOSE (1)
rsopp(:,:,:,:) = n/100.* rsopp
rsopdp(:,:,:,:) = n/100.*rsopdp
rsoppd(:,:,:,:) = n/100.*rsoppd
rsopdpd(:,:,:,:) = n/100.*rsopdpd
rsoplop(:,:,:,:) = n/100.*rsoplop
rsoplopd(:,:,:,:) = n/100.*rsoplopd
rsopdplo(:,:,:,:) = n/100.*rsopdplo
rsopplo(:,:,:,:) = n/100.* rsopplo
rsoploplop(:,:,:,:,:) = n/100.*rsoploplop
!Check if SOC is to be scaled for some atom
DO n=1,atoms%ntype
IF (ABS(noco%socscale(n)-1.0)>1.E-7) THEN
IF (mpi%irank==0) WRITE(6,*) "SOC scaled by ",noco%socscale(n)," for atom ",n
rsopp(n,:,:,:) = rsopp(n,:,:,:) * noco%socscale(n)
rsopdp(n,:,:,:) = rsopdp(n,:,:,:)* noco%socscale(n)
rsoppd(n,:,:,:) = rsoppd(n,:,:,:)* noco%socscale(n)
rsopdpd(n,:,:,:) = rsopdpd(n,:,:,:)* noco%socscale(n)
rsoplop(n,:,:,:) = rsoplop(n,:,:,:)* noco%socscale(n)
rsoplopd(n,:,:,:) = rsoplopd(n,:,:,:)* noco%socscale(n)
rsopdplo(n,:,:,:) = rsopdplo(n,:,:,:)* noco%socscale(n)
rsopplo(n,:,:,:) = rsopplo(n,:,:,:)* noco%socscale(n)
rsoploplop(n,:,:,:,:) = rsoploplop(n,:,:,:,:)* noco%socscale(n)
ENDIF
ENDDO
IF (mpi%irank==0) THEN
DO n = 1,atoms%ntype
WRITE (6,FMT=8000)
WRITE (6,FMT=9000)
......@@ -201,12 +184,12 @@ CONTAINS
WRITE (6,FMT=8001) (2*rsopdpd(n,l,2,2),l=1,3)
WRITE (6,FMT=8001) (2*rsopdpd(n,l,2,1),l=1,3)
ENDDO
8000 FORMAT (' spin - orbit parameter HR ')
8001 FORMAT (8f8.4)
9000 FORMAT (5x,' p ',5x,' d ', 5x, ' f ')
ENDIF
8000 FORMAT (' spin - orbit parameter HR ')
8001 FORMAT (8f8.4)
9000 FORMAT (5x,' p ',5x,' d ', 5x, ' f ')
IF (mpi%irank==0) THEN
IF (noco%soc_opt(atoms%ntype+1) .OR. l_all) 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