Commit 9bf7c6c2 authored by Daniel Wortmann's avatar Daniel Wortmann

Make reading of old inp working

parent b7c8069e
......@@ -18,7 +18,7 @@ include("cmake/filespecific.cmake")
include("cmake/ReportConfig.txt")
add_subdirectory("inpgen/new")
add_subdirectory("inpgen2")
......
......@@ -29,7 +29,6 @@ include(init/CMakeLists.txt)
include(ldau/CMakeLists.txt)
include(mix/CMakeLists.txt)
include(vgen/CMakeLists.txt)
include(inpgen/CMakeLists.txt)
include(docs/CMakeLists.txt)
include(mpi/CMakeLists.txt)
include(hybrid/CMakeLists.txt)
......
......@@ -2,7 +2,6 @@ set(fleur_F77 ${fleur_F77}
init/bandstr1.F
init/boxdim.f
init/convn_dim.f
init/old_inp/first_glance.f
init/gtest.f
init/ifft235.f
init/lhcal.f
......@@ -11,33 +10,23 @@ init/mod_symdata.f
init/od_chisym.f
init/prp_xcfft_box.f
init/ptsym.f
init/spg2set.f
init/spgrot.f
init/strgn_dim.F
)
set(fleur_F90 ${fleur_F90}
init/compile_descr.F90
init/old_inp/apws_dim.f90
init/checks.F90
init/old_inp/dimen7.F90
init/old_inp/dimens.F90
init/efield.f90
init/gen_map.f90
init/old_inp/inped.F90
init/inpeig.f90
init/old_inp/inpeig_dim.f90
init/mapatom.F90
init/od_mapatom.F90
init/od_strgn1.f90
init/parawrite.f90
init/prp_qfft.f90
init/prp_xcfft.f90
init/setlomap.F90
init/old_inp/setup.f90
init/stepf.F90
init/strgn.f90
init/postprocessInput.F90
init/initParallelProcesses.F90
init/old_inp/fleur_init_old.F90
init/lapw_dim.F90
)
MODULE m_inpeig
CONTAINS
SUBROUTINE inpeig(&
& atoms,cell,input,l_is_oneD,kpts,enpara,kptsFilename)
& atoms,cell,input,l_is_oneD,kpts,enpara,kptsFilename,latnam)
!*********************************************************************
! inputs the necessary quantities for the eigenvalue part (energy
! parameters, k-points, wavefunction cutoffs, etc.).
......@@ -16,7 +16,11 @@
!*********************************************************************
USE m_gkptwgt
USE m_constants
USE m_types
USE m_types_atoms
USE m_types_cell
USE m_types_input
USE m_types_kpts
USE m_types_enpara
USE m_juDFT
IMPLICIT NONE
......@@ -27,13 +31,15 @@
LOGICAL,INTENT(IN) :: l_is_oneD
TYPE(t_kpts),INTENT(INOUT) :: kpts
TYPE(t_enpara),OPTIONAL,INTENT(INOUT) :: enpara
CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: kptsFilename
CHARACTER(len=*),INTENT(IN) :: latnam
! ..
! .. Local Scalars ..
REAL :: wt,scale
INTEGER :: i,j,nk,jsp,n
LOGICAL :: xyu,l_enpara,l_clf
LOGICAL :: xyu,l_enpara,l_clf,l_k
CHARACTER(LEN=255) :: fname
! ..
!
......@@ -60,6 +66,9 @@
fname = 'kpts'
END IF
INQUIRE(file=TRIM(ADJUSTL(fname)),exist=l_k)
if (.not.l_k) return
OPEN (41,file=TRIM(ADJUSTL(fname)),form='formatted',status='old')
!
!---> k-mesh: given in units of the reciprocal lattice basis vectors
......@@ -91,7 +100,7 @@
kpts%bk(3,nk) = 0.0
IF (xyu) THEN
! transform to cartesian coordinates
IF (cell%latnam.EQ.'hex') THEN
IF (latnam.EQ.'hex') THEN
kpts%bk(1,nk) = kpts%bk(1,nk)*tpi_const/cell%amat(2,2)
kpts%bk(2,nk) = kpts%bk(2,nk)*pi_const/cell%amat(1,1)
ELSE
......@@ -131,7 +140,7 @@
! determine new wt
!
CALL gkptwgt(&
& kpts,cell)
& kpts,cell,latnam)
wt=sum(kpts%wtkpt)
ELSE
CALL juDFT_error("wtkpts",calledby ="inpeig",hint&
......
......@@ -12,7 +12,7 @@ c e. wimmer nov.1984 c.l.fu 1987
c *********************************************************
USE m_boxdim
USE m_spgrot
USE m_types, ONLY : od_dim
USE m_types_oneD
USE m_ifft, ONLY : i2357
IMPLICIT NONE
......
......@@ -27,6 +27,21 @@ read_inpgen_input.f90
closure.f90
super_check.f90
make_kpoints.f90
read_old_inp.f90
old_inp/apws_dim.f90
old_inp/dimen7.F90
old_inp/dimens.F90
old_inp/first_glance.f
old_inp/fleur_init_old.F90
old_inp/inped.F90
old_inp/inpeig_dim.f90
old_inp/inpnoco.F90
old_inp/rw_inp.f90
old_inp/setlomap.F90
old_inp/setup.f90
old_inp/rw_noco.f90
old_inp/rw_symfile.f
old_inp/spg2set.f
${FLEUR_SRC}/init/compile_descr.F90
${FLEUR_SRC}/global/constants.f90
......@@ -47,34 +62,71 @@ ${FLEUR_SRC}/kpoints/gen_bz.F90
${FLEUR_SRC}/kpoints/kprep.f
${FLEUR_SRC}/math/util.F
${FLEUR_SRC}/math/matmul.f
${FLEUR_SRC}/init/strgn_dim.F
${FLEUR_SRC}/init/spgrot.f
${FLEUR_SRC}/init/convn_dim.f
${FLEUR_SRC}/types/types_input.f90
${FLEUR_SRC}/types/types_xcpot.F90
${FLEUR_SRC}/types/types_mat.F90
${FLEUR_SRC}/types/types_xcpot_inbuild_nofunction.F90
${FLEUR_SRC}/types/types_xcpot.F90
${FLEUR_SRC}/types/types_xcpot_data.F90
${FLEUR_SRC}/types/types_kpts.f90
${FLEUR_SRC}/types/types_sym.f90
${FLEUR_SRC}/types/types_cell.f90
${FLEUR_SRC}/types/types_oneD.f90
${FLEUR_SRC}/types/types_noco.f90
${FLEUR_SRC}/types/types_atoms.F90
${FLEUR_SRC}/types/types_econfig.F90
${FLEUR_SRC}/types/types_hybrid.f90
${FLEUR_SRC}/types/types_xcpot_libxc.F90
${FLEUR_SRC}/types/types_mpi.F90
${FLEUR_SRC}/types/types_stars.f90
${FLEUR_SRC}/types/types_vacuum.f90
${FLEUR_SRC}/types/types_atoms.F90
${FLEUR_SRC}/types/types_lapw.F90
${FLEUR_SRC}/types/types_sphhar.f90
${FLEUR_SRC}/types/types_banddos.f90
${FLEUR_SRC}/types/types_sliceplot.f90
${FLEUR_SRC}/types/types_tlmplm.F90
${FLEUR_SRC}/types/types_misc.F90
${FLEUR_SRC}/types/types_mpimat.F90
${FLEUR_SRC}/types/types_potden.F90
${FLEUR_SRC}/types/types_enpara.F90
${FLEUR_SRC}/types/types_mpi.F90
${FLEUR_SRC}/types/types_dos.f90
${FLEUR_SRC}/types/types_forcetheo.F90
${FLEUR_SRC}/types/types_dimension.f90
${FLEUR_SRC}/types/types_kpts.f90
${FLEUR_SRC}/types/types_enpara.F90
${FLEUR_SRC}/types/types_setup.F90
${FLEUR_SRC}/types/types_usdus.F90
${FLEUR_SRC}/types/types_cdnval.f90
${FLEUR_SRC}/types/types_field.F90
${FLEUR_SRC}/types/types_regionCharges.f90
${FLEUR_SRC}/types/types_misc.F90
${FLEUR_SRC}/types/types_dos.f90
${FLEUR_SRC}/types/types_denCoeffsOffdiag.f90
${FLEUR_SRC}/types/types_gpumat.F90
${FLEUR_SRC}/types/types_econfig.F90
${FLEUR_SRC}/types/types_cell.f90
${FLEUR_SRC}/types/types_sym.f90
${FLEUR_SRC}/types/types_input.f90
${FLEUR_SRC}/types/types_sliceplot.f90
${FLEUR_SRC}/types/types_oneD.f90
${FLEUR_SRC}/types/types_hybrid.f90
${FLEUR_SRC}/types/types_noco.f90
${FLEUR_SRC}/types/types_banddos.f90
${FLEUR_SRC}/types/types_vacuum.f90
${FLEUR_SRC}/io/nocoInputCheck.F90
${FLEUR_SRC}/eigen/orthoglo.F90
${FLEUR_SRC}/math/ylm4.F90
${FLEUR_SRC}/cdn/slab_dim.f90
${FLEUR_SRC}/cdn/slabgeom.f90
${FLEUR_SRC}/dos/nstm3.f90
${FLEUR_SRC}/cdn/int_21.f90
${FLEUR_SRC}/cdn/int_21lo.f90
${FLEUR_SRC}/cdn_mt/rhomt21.f90
${FLEUR_SRC}/cdn_mt/rhonmt21.f90
${FLEUR_SRC}/xc-pot/gaunt.f90
${FLEUR_SRC}/math/grule.f
${FLEUR_SRC}/init/ifft235.f
${FLEUR_SRC}/init/mod_symdata.f
${FLEUR_SRC}/init/inpeig.f90
${FLEUR_SRC}/kpoints/gkptwgt.f90
${FLEUR_SRC}/init/local_sym.f
${FLEUR_SRC}/init/lhcal.f
${FLEUR_SRC}/init/ptsym.f
${FLEUR_SRC}/math/gaussp.f
${FLEUR_SRC}/init/gtest.f
${FLEUR_SRC}/init/prp_xcfft_box.f
${FLEUR_SRC}/io/xmlOutput.F90
${FLEUR_SRC}/global/utility.F90
${FLEUR_SRC}/global/radsra.f
......@@ -88,6 +140,7 @@ ${FLEUR_SRC}/global/find_enpara.f90
${FLEUR_SRC}/mpi/mpi_bc_tool.F90
${FLEUR_SRC}/math/d_wigner.F90
${FLEUR_SRC}/io/xsf_io.f90
${FLEUR_SRC}/init/boxdim.f
)
#Set module directories
......
......@@ -25,7 +25,7 @@ CONTAINS
! (max occurs for close-packed fcc: 12)
INTEGER lv1(3,neig12),lv2(3,neig12),lv3(3,neig12)
REAL, PARAMETER :: eps=1.0e-9
REAL, PARAMETER :: eps=1.0e-7
!---> distances for the lattice vectors
......@@ -43,6 +43,11 @@ CONTAINS
m2 = nint( dmax * b2 )
m3 = nint( dmax * b3 )
!Hmm, do not really understand the code below, but IMHO these are the maximal values of entries in mrot...
m1=1
m2=1
m3=1
!---->loop over all possible lattice vectors to find those with the
!---->length, i.e., ones that could be rotations
n1 = 1
......
......@@ -38,6 +38,7 @@ PROGRAM inpgen
USE m_types_oneD
USE m_types_sliceplot
USE m_types_stars
use m_read_old_inp
IMPLICIT NONE
......@@ -75,12 +76,12 @@ PROGRAM inpgen
CALL judft_error("inp.xml exists and can not be overwritten")
IF (judft_was_argument("-inp")) THEN
STOP "not yet"
!CALL read_old_input()
call read_old_inp(input,atoms,cell,stars,sym,noco,vacuum,forcetheo,&
sliceplot,banddos,enpara,xcpot,kpts,hybrid, oneD)
l_fullinput=.TRUE.
ELSEIF (judft_was_argument("-inp.xml")) THEN
call read_old_inp(input,DIMENSION,atoms,sphhar,cell,stars,sym,noco,vacuum,forcetheo,&
sliceplot,banddos,enpara,xcpot,kpts,hybrid, oneD)
!not yet
call judft_error("reading inp.xml not yet possible")
l_fullinput=.TRUE.
ELSEIF(judft_was_argument("-f")) THEN
!read the input
......@@ -118,10 +119,10 @@ PROGRAM inpgen
CALL w_inpxml(&
atoms,vacuum,input,stars,sliceplot,forcetheo,banddos,&
cell,sym,xcpot,noco,oneD,hybrid,kpts,enpara,&
5,l_explicit,l_include,"inp.xml")
if (.not.l_include) CALL sym%print_XML(99,"sym.xml")
l_explicit,l_include,"inp.xml")
if (.not.l_include(1)) CALL sym%print_XML(99,"sym.xml")
ENDIF
if (.not.l_include) CALL kpts%print_XML(99,"kpts.xml")
if (.not.l_include(2)) CALL kpts%print_XML(99,"kpts.xml")
! Structure in xsf-format
OPEN (55,file="struct.xsf")
......@@ -131,45 +132,46 @@ PROGRAM inpgen
CALL juDFT_end("All done")
contains
subroutine determine_includes(l_include)
logical,intent(out)::l_include(4) !kpts,operations,species,position
l_include=[.false.,.false.,.true.,.true.]
CONTAINS
SUBROUTINE determine_includes(l_include)
LOGICAL,INTENT(out)::l_include(4) !kpts,operations,species,position
CHARACTER(len=100)::str=''
LOGICAL ::incl
l_include=[.FALSE.,.FALSE.,.TRUE.,.TRUE.]
IF (judft_was_argument("-inc")) THEN
str=judft_string_for_argument("-inc")
do while(len_trim(str)>0) then
if (str(1:1)=='-') then
incl=.false.
DO WHILE(LEN_TRIM(str)>0)
IF (str(1:1)=='-') THEN
incl=.FALSE.
str=str(2:)
else
incl=.true.
if (str(1:1)=='+') str=str(2:)
endif
select case(str(1:1))
case ('k','K')
ELSE
incl=.TRUE.
IF (str(1:1)=='+') str=str(2:)
ENDIF
SELECT CASE(str(1:1))
CASE ('k','K')
l_include(1)=incl
case ('o','O')
CASE ('o','O')
l_include(2)=incl
case ('s','S')
CASE ('s','S')
l_include(3)=incl
case ('p','P')
CASE ('p','P')
l_include(4)=incl
case ('a','A')
CASE ('a','A')
l_include(:)=incl
end select
if (index(str,"'")>0) then
str=str(index(str,"'")+1:)
else
END SELECT
IF (INDEX(str,"'")>0) THEN
str=str(INDEX(str,"'")+1:)
ELSE
str=""
end if
end do
endif
END IF
END DO
ENDIF
IF (LEN_TRIM(str)>1) CALL judft_error("Do not specify k-points in file and on command line")
str=judft_string_for_argument("-k")
END IF
END SUBROUTINE determine_includes
END PROGRAM inpgen
......@@ -19,7 +19,10 @@
!*********************************************************************
USE m_boxdim
USE m_ifft, ONLY : ifft235
USE m_types
USE m_types_cell
USE m_types_input
USE m_types_noco
USE m_types_oned
IMPLICIT NONE
REAL,INTENT(IN) :: bkpt(3)
......
......@@ -4,7 +4,7 @@
SUBROUTINE dimen7(&
& input,sym,stars,&
& atoms,sphhar,dimension,vacuum,&
& obsolete,kpts,oneD,hybrid,cell)
& kpts,oneD,hybrid,cell)
!
! This program reads the input files of the flapw-programm (inp & kpts)
......@@ -19,9 +19,25 @@
USE m_constants
USE m_rwinp
USE m_inpnoco
USE m_julia
USE m_od_kptsgen
USE m_types
! USE m_julia
! USE m_od_kptsgen
USE m_types_input
USE m_types_sym
USE m_types_stars
USE m_types_atoms
USE m_types_sphhar
USE m_types_dimension
USE m_types_vacuum
USE m_types_kpts
USE m_types_oneD
USE m_types_hybrid
USE m_types_cell
USE m_types_noco
USE m_types_banddos
USE m_types_sliceplot
USE m_types_xcpot_inbuild_nofunction
USE m_firstglance
USE m_inv3
USE m_rwsymfile
......@@ -40,7 +56,6 @@
TYPE(t_sphhar),INTENT(INOUT) :: sphhar
TYPE(t_dimension),INTENT(INOUT) :: dimension
TYPE(t_vacuum),INTENT(INOUT) :: vacuum
TYPE(t_obsolete),INTENT(INOUT) :: obsolete
TYPE(t_kpts),INTENT(INOUT) :: kpts
TYPE(t_oneD),INTENT(INOUT) :: oneD
TYPE(t_hybrid),INTENT(INOUT) :: hybrid
......@@ -49,7 +64,7 @@
TYPE(t_noco) :: noco
TYPE(t_sliceplot) :: sliceplot
TYPE(t_banddos) :: banddos
TYPE(t_xcpot_inbuild) :: xcpot
TYPE(t_xcpot_inbuild_nf) :: xcpot
!
!
......@@ -77,8 +92,9 @@
! added for HF and hybrid functionals
LOGICAL :: l_gamma=.false.
character(len=4) :: latnam
EXTERNAL prp_xcfft_box,parawrite
EXTERNAL prp_xcfft_box!,parawrite
! ..
......@@ -113,9 +129,9 @@
!---> read complete input and calculate nvacd,llod,lmaxd,jmtd,neigd and
!
CALL rw_inp('r',&
& atoms,obsolete,vacuum,input,stars,sliceplot,banddos,&
& atoms,vacuum,input,stars,sliceplot,banddos,&
& cell,sym,xcpot,noco,oneD,hybrid,kpts,&
& noel,namex,relcor,a1,a2,a3)
& noel,namex,relcor,a1,a2,a3,latnam)
!---> pk non-collinear
!---> read the angle and spin-spiral information from nocoinp
......@@ -211,7 +227,7 @@
symfh = 94 ; symfn = 'sym.out'
CALL rw_symfile(rw,symfh,symfn,nopd,cell%bmat,sym%mrot,sym%tau,sym%nop,sym%nop2,sym%symor)
ELSE
CALL spg2set(sym%nop,sym%zrfs,sym%invs,sym%namgrp,cell%latnam,sym%mrot,sym%tau,sym%nop2,sym%symor)
CALL spg2set(sym%nop,sym%zrfs,sym%invs,sym%namgrp,latnam,sym%mrot,sym%tau,sym%nop2,sym%symor)
ENDIF
sphhar%ntypsd = 0
IF (.NOT.oneD%odd%d1) THEN
......@@ -305,10 +321,10 @@
IF(l_gamma .AND. banddos%ndir .EQ. 0) THEN
call judft_error("gamma swtich not supported in old inp file anymore",calledby="dimen7")
ELSE
CALL julia(sym,cell,input,noco,banddos,kpts,.false.,.FALSE.)
! CALL julia(sym,cell,input,noco,banddos,kpts,.false.,.FALSE.)
ENDIF
ELSE
CALL od_kptsgen (kpts%nkpt)
! CALL od_kptsgen (kpts%nkpt)
ENDIF
ELSE
IF(input%gw.eq.2) THEN
......@@ -336,19 +352,19 @@
!
! Using the k-point generator also for creation of q-points for the
! J-constants calculation:
IF(.not.l_qpts)THEN
kpts%nkpt3=nmopq
l_tmp=(/noco%l_ss,noco%l_soc/)
noco%l_ss=.false.
noco%l_soc=.false.
CALL julia(sym,cell,input,noco,banddos,kpts,.true.,.FALSE.)
noco%l_ss=l_tmp(1); noco%l_soc=l_tmp(2)
ENDIF
! IF(.not.l_qpts)THEN
! kpts%nkpt3=nmopq
! l_tmp=(/noco%l_ss,noco%l_soc/)
! noco%l_ss=.false.
! noco%l_soc=.false.
! CALL julia(sym,cell,input,noco,banddos,kpts,.true.,.FALSE.)
! noco%l_ss=l_tmp(1); noco%l_soc=l_tmp(2)
! ENDIF
!
! now proceed as usual
!
CALL inpeig_dim(input,obsolete,cell,noco,oneD,kpts,dimension,stars)
CALL inpeig_dim(input,cell,noco,oneD,kpts,dimension,stars,latnam)
vacuum%layerd = max(vacuum%layerd,1)
dimension%nstd = max(dimension%nstd,30)
atoms%ntype = atoms%ntype
......@@ -356,7 +372,7 @@
atoms%nlod = max(atoms%nlod,2) ! for chkmt
input%jspins=input%jspins
CALL parawrite(sym,stars,atoms,sphhar,DIMENSION,vacuum,obsolete,kpts,oneD,input)
!CALL parawrite(sym,stars,atoms,sphhar,DIMENSION,vacuum,kpts,oneD,input)
DEALLOCATE( sym%mrot,sym%tau,&
& atoms%lmax,atoms%ntypsy,atoms%neq,atoms%nlhtyp,atoms%rmt,atoms%zatom,atoms%jri,atoms%dx,atoms%nlo,atoms%llo,atoms%nflip,atoms%bmu,noel,&
......
......@@ -12,9 +12,19 @@ CONTAINS
SUBROUTINE dimens(&
& input,sym,stars,&
& atoms,sphhar,dimension,vacuum,&
& obsolete,kpts,oneD,hybrid)
& kpts,oneD,hybrid)
USE m_types
USE m_types_input
USE m_types_sym
USE m_types_stars
USE m_types_atoms
USE m_types_sphhar
USE m_types_dimension
USE m_types_vacuum
USE m_types_kpts
USE m_types_oned
USE m_types_hybrid
USE m_types_cell
USE m_dimen7
USE m_firstglance
IMPLICIT NONE
......@@ -25,7 +35,6 @@ CONTAINS
TYPE(t_sphhar),INTENT(INOUT) :: sphhar
TYPE(t_dimension),INTENT(INOUT) :: dimension
TYPE(t_vacuum),INTENT(INOUT) :: vacuum
TYPE(t_obsolete),INTENT(INOUT) :: obsolete
TYPE(t_kpts),INTENT(INOUT) :: kpts
TYPE(t_oneD),INTENT(INOUT) :: oneD
TYPE(t_hybrid),INTENT(INOUT) :: hybrid
......@@ -45,7 +54,7 @@ CONTAINS
!call first_glance to generate k-points
CALL first_glance(n1,n2,n3,n5,n6,input%itmax,l_kpts,l_qpts,ldum,n7,n8,n10)
CALL dimen7(input,sym,stars,atoms,sphhar,dimension,vacuum,obsolete,kpts,&
CALL dimen7(input,sym,stars,atoms,sphhar,dimension,vacuum,kpts,&
oneD,hybrid,cell)
! in case of a parallel calculation we have to broadcast
dimension%nspd=(atoms%lmaxd+1+mod(atoms%lmaxd+1,2))*(2*atoms%lmaxd+1)
......
......@@ -8,10 +8,27 @@ MODULE m_fleur_init_old
CONTAINS
!> Collection of code for old-style inp-file treatment
SUBROUTINE fleur_init_old(&
input,DIMENSION,atoms,sphhar,cell,stars,sym,noco,vacuum,forcetheo,&
input,DIMENSION,atoms,sphhar,cell,stars,sym,noco,vacuum,&
sliceplot,banddos,enpara,xcpot,kpts,hybrid,&
oneD,coreSpecInput)
USE m_types
oneD)
USE m_types_input
USE m_types_dimension
USE m_types_atoms
USE m_types_sphhar
USE m_types_cell
USE m_types_stars
USE m_types_sym
USE m_types_noco
USE m_types_vacuum
USE m_types_sliceplot
USE m_types_banddos
USE m_types_enpara
USE m_types_xcpot_inbuild_nofunction
USE m_types_kpts
USE m_types_hybrid
USE m_types_oned
USE m_judft
USE m_dimens
USE m_inped
......@@ -32,13 +49,11 @@ CONTAINS
TYPE(t_sliceplot),INTENT(INOUT):: sliceplot
TYPE(t_banddos) ,INTENT(OUT) :: banddos
TYPE(t_enpara) ,INTENT(OUT) :: enpara
CLASS(t_xcpot),INTENT(OUT),ALLOCATABLE :: xcpot
TYPE(t_xcpot_inbuild_nf),INTENT(OUT) :: xcpot
TYPE(t_kpts) ,INTENT(INOUT):: kpts
TYPE(t_hybrid) ,INTENT(OUT) :: hybrid
TYPE(t_oneD) ,INTENT(OUT) :: oneD
TYPE(t_coreSpecInput),INTENT(OUT) :: coreSpecInput
CLASS(t_forcetheo),ALLOCATABLE,INTENT(OUT)::forcetheo
! .. Local Scalars ..
INTEGER :: i,n,l,m1,m2,isym,iisym,pc,iAtom,iType
......@@ -49,14 +64,12 @@ CONTAINS
REAL :: a1(3),a2(3),a3(3)
REAL :: dtild, phi_add
LOGICAL :: l_found, l_kpts, l_exist, l_krla
ALLOCATE(t_forcetheo::forcetheo) !default no forcetheorem type
ALLOCATE(t_xcpot_inbuild::xcpot)
character(len=4) :: latnam
namex = ' '
relcor = ' '
CALL dimens(mpi,input,sym,stars,atoms,sphhar,DIMENSION,vacuum,&
CALL dimens(input,sym,stars,atoms,sphhar,DIMENSION,vacuum,&
kpts,oneD,hybrid)
stars%kimax2= (2*stars%mx1+1)* (2*stars%mx2+1)-1
stars%kimax = (2*stars%mx1+1)* (2*stars%mx2+1)* (2*stars%mx3+1)-1
......@@ -114,7 +127,6 @@ CONTAINS
! HF/hybrid functionals/EXX
ALLOCATE ( hybrid%nindx(0:atoms%lmaxd,atoms%ntype) )
kpts%specificationType = 0
input%l_coreSpec = .FALSE.
......@@ -123,7 +135,7 @@ CONTAINS
CALL inped(atoms,vacuum,input,banddos,xcpot,sym,&
cell,sliceplot,noco,&
stars,oneD,hybrid,kpts,a1,a2,a3,namex,relcor)
stars,oneD,hybrid,kpts,a1,a2,a3,namex,relcor,latnam)
!
IF (xcpot%needs_grad()) THEN
ALLOCATE (stars%ft2_gfx(0:stars%kimax2),stars%ft2_gfy(0:stars%kimax2))
......@@ -141,14 +153,11 @@ CONTAINS
namex=xcpot%get_name()
l_krla = xcpot%data%krla.EQ.1
IF (mpi%irank.NE.0) THEN
CALL xcpot%init(namex,l_krla,atoms%ntype)
END IF
CALL setup(mpi,atoms,kpts,DIMENSION,sphhar,&
sym,stars,oneD,input,noco,&
vacuum,cell,xcpot,&
sliceplot,enpara)
!Call xcpot%init(namex,l_krla,atoms%ntype)
CALL setup(atoms,kpts,&
sym,oneD,input,cell,&
enpara,latnam)
banddos%l_orb = .FALSE.
banddos%orbCompAtom = 0
......
......@@ -26,24 +26,35 @@
! *******************************************************
!
CONTAINS
SUBROUTINE inped(atoms,obsolete,vacuum,input,banddos,xcpot,sym,&
SUBROUTINE inped(atoms,vacuum,input,banddos,xcpot,sym,&
cell,sliceplot,noco,&
stars,oneD,hybrid,kpts,a1,a2,a3,namex,relcor)
stars,oneD,hybrid,kpts,a1,a2,a3,namex,relcor,latnam)
USE m_rwinp
USE m_chkmt
!USE m_chkmt
USE m_inpnoco
USE m_constants
USE m_types
USE m_types_atoms
USE m_types_vacuum
USE m_types_input
USE m_types_banddos
USE m_types_xcpot_inbuild_nofunction
USE m_types_sym
USE m_types_cell
USE m_types_sliceplot
USE m_types_noco
USE m_types_stars
USE m_types_oneD
USE m_types_hybrid
USE m_types_kpts
USE m_setlomap
IMPLICIT NONE
! ..
! .. Scalar Arguments ..
TYPE(t_atoms), INTENT(INOUT) :: atoms
TYPE(t_obsolete), INTENT(INOUT) :: obsolete
TYPE(t_vacuum), INTENT(INOUT) :: vacuum
TYPE(t_input), INTENT(INOUT) :: input
TYPE(t_banddos), INTENT(INOUT) :: banddos
TYPE(t_xcpot_inbuild), INTENT(INOUT) :: xcpot
TYPE(t_xcpot_inbuild_nf), INTENT(INOUT) :: xcpot
TYPE(t_sym),