Commit 67e53cd1 authored by Daniel Wortmann's avatar Daniel Wortmann

Modified help system, moved routines dealingwith kpint generation into own directory

parent a7b87600
......@@ -37,6 +37,7 @@ include(wannier/CMakeLists.txt)
include(wannier/uhu/CMakeLists.txt)
include(forcetheorem/CMakeLists.txt)
include(rdmft/CMakeLists.txt)
include(kpoints/CMakeLists.txt)
include(tests/tests_old.cmake)
......@@ -48,19 +49,19 @@ inpgen/atom_sym.f inpgen/generator.f inpgen/read_record.f inpgen/soc_or_ssdw.f i
inpgen/bravais_symm.f inpgen/set_atom_core.f inpgen/spg_gen.f global/triang.f
inpgen/closure.f inpgen/lapw_input.f inpgen/struct_input.f inpgen/write_struct.f
io/calculator.f global/ss_sym.f global/soc_sym.f math/inv3.f io/rw_symfile.f
global/sort.f init/kptgen_hybrid.f init/od_kptsgen.f init/bravais.f init/divi.f init/brzone.f
init/kptmop.f init/kpttet.f init/bandstr1.F init/ordstar.f init/fulstar.f init/kprep.f
init/tetcon.f init/kvecon.f init/boxdim.f math/ylm4.f global/radsra.f math/intgr.F global/differ.f math/inwint.f
global/sort.f kpoints/kptgen_hybrid.f kpoints/od_kptsgen.f kpoints/bravais.f kpoints/divi.f kpoints/brzone.f
kpoints/kptmop.f kpoints/kpttet.f init/bandstr1.F kpoints/ordstar.f kpoints/fulstar.f kpoints/kprep.f
kpoints/tetcon.f kpoints/kvecon.f init/boxdim.f math/ylm4.f global/radsra.f math/intgr.F global/differ.f math/inwint.f
math/outint.f xc-pot/gaunt.f math/grule.f
)
set(inpgen_F90 ${inpgen_F90} global/constants.f90 io/xsf_io.f90
eigen/vec_for_lo.f90 eigen/orthoglo.F90 juDFT/usage_data.F90
global/enpara.f90 global/chkmt.f90 inpgen/inpgen.f90 inpgen/set_inp.f90 inpgen/inpgen_help.f90 io/rw_inp.f90 juDFT/juDFT.F90 global/find_enpara.f90
juDFT/info.F90 juDFT/stop.F90 juDFT/args.F90 juDFT/time.F90 juDFT/init.F90 juDFT/sysinfo.F90 io/w_inpXML.f90 init/julia.f90 global/utility.F90
init/compile_descr.F90 init/kpoints.f90 io/xmlOutput.F90 init/brzone2.f90 cdn/slab_dim.f90 cdn/slabgeom.f90 dos/nstm3.f90 cdn/int_21.f90
juDFT/info.F90 juDFT/stop.F90 juDFT/args.F90 juDFT/time.F90 juDFT/init.F90 juDFT/sysinfo.F90 io/w_inpXML.f90 kpoints/julia.f90 global/utility.F90
init/compile_descr.F90 kpoints/kpoints.f90 io/xmlOutput.F90 kpoints/brzone2.f90 cdn/slab_dim.f90 cdn/slabgeom.f90 dos/nstm3.f90 cdn/int_21.f90
cdn/int_21lo.f90 cdn_mt/rhomt21.f90 cdn_mt/rhonmt21.f90 force/force_a21.F90 force/force_a21_lo.f90 force/force_a21_U.f90 force/force_a12.f90
eigen/tlmplm_store.F90 init/unfoldBandKPTS.f90)
eigen/tlmplm_store.F90 kpoints/unfoldBandKPTS.f90)
set(fleur_SRC ${fleur_F90} ${fleur_F77})
......
set(fleur_F77 ${fleur_F77}
init/bandstr1.F
init/boxdim.f
init/bravais.f
init/brzone.f
init/convn_dim.f
init/divi.f
init/old_inp/first_glance.f
init/fulstar.f
init/gtest.f
init/ifft235.f
init/kprep.f
init/kptgen_hybrid.f
init/kptmop.f
init/kpttet.f
init/kvecon.f
init/lhcal.f
init/local_sym.f
init/mod_symdata.f
init/od_chisym.f
init/od_kptsgen.f
init/ordstar.f
init/prp_xcfft_box.f
init/ptsym.f
init/spg2set.f
init/spgrot.f
init/strgn_dim.F
init/tetcon.f
)
set(fleur_F90 ${fleur_F90}
init/compile_descr.F90
init/kpoints.f90
init/apws_dim.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_bz.F90
init/gen_map.f90
init/gkptwgt.f90
init/old_inp/inped.F90
init/inpeig.f90
init/old_inp/inpeig_dim.f90
init/julia.f90
init/mapatom.F90
init/od_mapatom.F90
init/od_strgn1.f90
......@@ -52,10 +36,8 @@ init/setlomap.F90
init/old_inp/setup.f90
init/stepf.F90
init/strgn.f90
init/brzone2.f90
init/postprocessInput.F90
init/initParallelProcesses.F90
init/old_inp/fleur_init_old.F90
init/lapw_dim.F90
init/unfoldBandKPTS.f90
)
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_apwsdim
CONTAINS
SUBROUTINE apws_dim(&
& bkpt,cell,input,noco,oneD,&
& nv,nv2,kq1d,kq2d,kq3d)
!
!*********************************************************************
! determines dimensions of the lapw basis set with |k+G|<rkmax.
! bkpt is the k-point given in internal units
!
! dimensions kq(i)d for charge density FFT added.
! s. bluegel, JRCAT, Feb. 97
!*********************************************************************
USE m_boxdim
USE m_ifft, ONLY : ifft235
USE m_types
IMPLICIT NONE
REAL,INTENT(IN) :: bkpt(3)
TYPE(t_cell),INTENT(IN) :: cell
TYPE(t_input),INTENT(IN) :: input
TYPE(t_noco),INTENT(IN) :: noco
TYPE(t_oneD),INTENT(IN) :: oneD
INTEGER,INTENT(OUT) :: nv,nv2,kq1d,kq2d,kq3d
INTEGER j1,j2,j3,mk1,mk2,mk3,iofile,ksfft
INTEGER ispin,nvh(2),nv2h(2)
REAL arltv1,arltv2,arltv3,rkm,rk2,r2,s(3),gmaxp
! ..
!
!-------> ABBREVIATIONS
!
! iofile : device number for in and output
! gmax : cut-off wavevector for charge density
! rkmax : cut-off for |g+k|
! gmaxp : gmaxp = gmax/rkmax, ideal: gmaxp=2
! arltv(i) : length of reciprical lattice vector along
! direction (i)
!
!---> Determine rkmax box of size mk1, mk2, mk3,
! for which |G(mk1,mk2,mk3) + (k1,k2,k3)| < rkmax
!
CALL boxdim(cell%bmat,arltv1,arltv2,arltv3)
! (add 1+1 due to integer rounding, strange k_vector in BZ)
mk1 = int(input%rkmax/arltv1) + 2
mk2 = int(input%rkmax/arltv2) + 2
mk3 = int(input%rkmax/arltv3) + 2
rkm = input%rkmax
rk2 = rkm*rkm
!---> obtain vectors
!---> in a spin-spiral calculation different basis sets are used for
!---> the two spin directions, because the cutoff radius is defined
!---> by |G + k +/- qss/2| < rkmax.
DO ispin = 1,2
nv = 0
nv2 = 0
DO j1 = -mk1,mk1
s(1) = bkpt(1) + j1 + (2*ispin - 3)/2.0*noco%qss(1)
DO j2 = -mk2,mk2
s(2) = bkpt(2) + j2 + (2*ispin - 3)/2.0*noco%qss(2)
!---> nv2 for films
s(3) = 0.0
!r2 = dotirp(s,s,cell%bbmat)
r2 = dot_product(matmul(s,cell%bbmat),s)
IF (r2.LE.rk2) nv2 = nv2 + 1
DO j3 = -mk3,mk3
s(3) = bkpt(3) + j3 + (2*ispin - 3)/2.0*noco%qss(3)
!r2 = dotirp(s,s,cell%bbmat)
r2 = dot_product(matmul(s,cell%bbmat),s)
IF (r2.LE.rk2) THEN
nv = nv + 1
END IF
END DO
END DO
END DO
!-odim
IF (oneD%odd%d1) THEN
nv2 = 0
s(1) = 0.0
s(2) = 0.0
DO j3 = -mk3,mk3
s(3) = bkpt(3) + j3 + (2*ispin - 3)/2.0*noco%qss(3)
!r2 = dotirp(s,s,cell%bbmat)
r2 = dot_product(matmul(s,cell%bbmat),s)
IF (r2.LE.rk2) THEN
nv2 = nv2 + 1
END IF
END DO
END IF
!+odim
nvh(ispin) = nv
nv2h(ispin) = nv2
END DO
nv = max(nvh(1),nvh(2))
nv2 = max(nv2h(1),nv2h(2))
!---> Determine the dimensions kq1d, kq2d, kq3d
! of the dimension of the charge density fft-box
! needed for the fast calculation of pw density
! (add 1 due to integer rounding,
! factor 2 due to positive domain)
!
gmaxp = 2.0
CALL boxdim(cell%bmat,arltv1,arltv2,arltv3)
!
mk1 = int(gmaxp*input%rkmax/arltv1) + 1
mk2 = int(gmaxp*input%rkmax/arltv2) + 1
mk3 = int(gmaxp*input%rkmax/arltv3) + 1
!---> add + 1 in spin spiral calculation, to make sure that all G's are
!---> still within the FFT-box after being shifted by the spin spiral
!---> q-vector.
IF (noco%l_ss) THEN
mk1 = mk1 + 1
mk2 = mk2 + 1
mk3 = mk3 + 1
ENDIF
!
kq1d = 2*mk1
kq2d = 2*mk2
kq3d = 2*mk3
!
!---> fft's are usually fastest for low primes
! (restrict kqid to: kqid= (2**P) * (3**Q) * (5**R)
!
ksfft = 1
! ksfft=(0,1) : KEY OF SELECTING FFT-PRDOGRAM AND RADIX-TYPE
! 0 PROGRAM, RADIX-2 ONLY
! 1 PROGRAM, RADIX-2, RADIX-3,RADIX-5
kq1d = ifft235(6,ksfft,kq1d,gmaxp)
kq2d = ifft235(6,ksfft,kq2d,gmaxp)
kq3d = ifft235(6,ksfft,kq3d,gmaxp)
RETURN
END SUBROUTINE
END
......@@ -15,7 +15,6 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
USE m_juDFT
USE m_types
USE m_constants
USE m_julia
USE m_lapwdim
USE m_ylm
USE m_convndim
......@@ -35,7 +34,6 @@ SUBROUTINE postprocessInput(mpi,input,field,sym,stars,atoms,vacuum,obsolete,kpts
USE m_convn
USE m_efield
USE m_od_mapatom
USE m_kptgen_hybrid
USE m_od_kptsgen
USE m_gen_bz
USE m_nocoInputCheck
......
......@@ -61,6 +61,9 @@
WRITE(*,*) "Please check and report if you believe you found a bug"
CALL writetimes()
CALL PRINT_memory_info()
#ifdef CPP_MPI
CALL MPI_ABORT(MPI_COMM_WORLD,error,ierr)
#endif
STOP "Signal"
intel_signal_handler=0
END FUNCTION intel_signal_handler
......
......@@ -175,6 +175,7 @@ CONTAINS
CALL endXMLOutput()
END IF
END IF
IF (TRIM(message)=="") STOP ! simple stop if no end message is given
WRITE(0,*)
WRITE(0,*) "*****************************************"
WRITE(0,*) "Run finished successfully"
......
set(fleur_F77 ${fleur_F77}
kpoints/bravais.f
kpoints/brzone.f
kpoints/divi.f
kpoints/fulstar.f
kpoints/kprep.f
kpoints/kptgen_hybrid.f
kpoints/kptmop.f
kpoints/kpttet.f
kpoints/kvecon.f
kpoints/od_kptsgen.f
kpoints/ordstar.f
kpoints/tetcon.f
)
set(fleur_F90 ${fleur_F90}
kpoints/gkptwgt.f90
kpoints/julia.f90
kpoints/kpoints.f90
kpoints/unfoldBandKPTS.f90
kpoints/gen_bz.F90
kpoints/brzone2.f90
)
......@@ -5,7 +5,7 @@ main/cdngen.F90
main/fleur.F90
main/fleur_init.F90
main/fleur_job.F90
main/fleur_help.f90
main/fleur_help.F90
main/fleur_info.f90
main/mix.F90
main/optional.F90
......
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur_help
IMPLICIT NONE
PRIVATE
TYPE t_fleur_param
INTEGER :: TYPE
CHARACTER(len=20) :: name
CHARACTER(len=200) :: desc
CHARACTER(len=200) :: values
END TYPE t_fleur_param
#ifdef CPP_HDF
INTEGER,PARAMETER:: no_params=20
#else
INTEGER,PARAMETER:: no_params=16
#endif
TYPE(t_fleur_param) :: fleur_param(no_params)=(/&
!Input options
t_fleur_param(0,"-toXML","Convert an old 'inp' file into the new XML format",""),&
t_fleur_param(1,"-xmlXpath","modify the xml-xpath of the inp.xml file",""),&
!Control the job
t_fleur_param(0,"-check","run in check mode, i.e. stop after init",""),&
t_fleur_param(0,"-info","Print out information on recommended parallelization and available charge densities",""),&
t_fleur_param(2,"-wtime","run for # minutes (used to estimate if another iteration is started)",""),&
t_fleur_param(1,"-j","Distribute MPI ranks to run subjobs (Format PE:DIR meaning run with PE in directory DIR)",""),&
t_fleur_param(1,"-f","Obtain info on subjobs from file",""),&
t_fleur_param(2,"-n_min_size","Try to use at least specified number of PE in eigenvalue parallelization",""),&
t_fleur_param(1,"-diag","Choose method for diagonalization","lapack,debugout"&
#ifdef CPP_SCALAPACK
//",scalapack"&
#endif
#ifdef CPP_ELPA
//",elpa"&
#endif
#ifdef CPP_CHASE
//",chase"&
#endif
#ifdef CPP_MAGMA
//",magma"&
#endif
),&
t_fleur_param(1,"-eig","Method for storing the eigenvectors","mem,da"&
#ifdef CPP_MPI
//",mpi"&
#endif
#ifdef CPP_HDF
//",hdf"&
#endif
),&
!Debugging
t_fleur_param(0,"-warn_only","Continue execution after a warning message",""),&
t_fleur_param(0,"-trace","Try to generate a stacktrace in case of an error",""),&
t_fleur_param(0,"-debugtime","Write the start/stop of all timers to the console",""),&
!Output
t_fleur_param(0,"-no_out","Do not open the 'out' file but write to stdout",""),&
t_fleur_param(0,"-gen_enpara","Generate an 'enpara' file for the energy parameters",""),&
t_fleur_param(0,"-h","Print this message","")&
!HDF density
#ifdef CPP_HDF
,t_fleur_param(0,"-no_cdn_hdf","Disable HDF charge density mode (activated by default if HDF5 is available)","")&
,t_fleur_param(0,"-last_extra","Generate an additional file cdn_last.hdf that contains only the last density","")&
,t_fleur_param(2,"-sd","use starting density N, where N is the index of the density according to -info","")&
,t_fleur_param(1,"-delden","delete densities (either an index N, a range N-M or the keyword 'allbutlast' should be given)","")&
#endif
/)
PUBLIC fleur_help
CONTAINS
SUBROUTINE check_arguments()
USE m_judft
IMPLICIT NONE
INTEGER :: i,n
CHARACTER(len=200):: str
i=1
DO WHILE(i<=COMMAND_ARGUMENT_COUNT())
CALL GET_COMMAND_ARGUMENT(i,str)
param_loop:DO n=1,SIZE(fleur_param)
IF (TRIM(str)==fleur_param(n)%name) THEN
SELECT CASE (fleur_param(n)%TYPE)
CASE(1)
i=i+1
CALL GET_COMMAND_ARGUMENT(i,str)
IF (TRIM(fleur_param(n)%values)/="") THEN
IF (INDEX(TRIM(fleur_param(n)%values),TRIM(str))==0) THEN
PRINT *,"Invalid value :",TRIM(str)
PRINT *,"Possible values:",TRIM(fleur_param(n)%values)
CALL judft_warn("Invalid value to command line argument")
END IF
END IF
CASE(2)
i=i+1
END SELECT
EXIT param_loop
END IF
ENDDO param_loop
IF (n>SIZE(fleur_param)) CALL judft_warn("Unkown command line argument:"//str)
i=i+1
ENDDO
END SUBROUTINE check_arguments
SUBROUTINE print_param(name)
IMPLICIT NONE
CHARACTER(len=*),INTENT(in):: name
INTEGER :: n
DO n=1,no_params
IF (TRIM(name)==TRIM(fleur_param(n)%name)) THEN
IF (fleur_param(n)%TYPE==0) THEN !parameter without option
WRITE(*,1001) TRIM(fleur_param(n)%name),TRIM(fleur_param(n)%desc)
ELSEIF (fleur_param(n)%TYPE==1) THEN
IF (fleur_param(n)%values=="") THEN !parameter with string
WRITE(*,1002) TRIM(fleur_param(n)%name),TRIM(fleur_param(n)%desc)
ELSE !parameter with string and choice
WRITE(*,1003) TRIM(fleur_param(n)%name),TRIM(fleur_param(n)%values),TRIM(fleur_param(n)%desc)
END IF
ELSE !parameter with number
WRITE(*,1004) TRIM(fleur_param(n)%name),TRIM(fleur_param(n)%desc)
ENDIF
RETURN
ENDIF
END DO
1001 FORMAT(t5,a,t20,": ",a)
1002 FORMAT(t5,a," $$$",t20,": ",a)
1003 FORMAT(t5,a," [",a,"]",/,t20,": ",a)
1004 FORMAT(t5,a," #",t20,": ",a)
PRINT *,"BUG IN FLEUR, check handling of parameters in fleur_help.f90"
PRINT *,name
END SUBROUTINE print_param
SUBROUTINE fleur_help()
USE m_compile_descr
USE m_constants
USE m_juDFT
IMPLICIT NONE
CHARACTER(LEN=500):: infostring
PRINT *," Welcome to FLEUR (www.flapw.de) "
PRINT *," MaX-Release 2.1 (www.max-centre.eu)"
CALL check_arguments()
IF (.NOT. (juDFT_was_argument("-h").OR.juDFT_was_argument("--help"))) RETURN
!now print version info and help on command line arguments:
CALL get_compile_desc_string(infostring)
WRITE(*,'(a500)') infostring
WRITE(*,'(a)')
WRITE(*,'(a)')"------------------------------------------------------"
WRITE(*,'(a)')"Usage info:"
WRITE(*,'(a)')"The following command line options are known:"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Control the input:"
CALL print_param("-toXML")
CALL print_param("-xmlXpath")
WRITE(*,'(a)')""
WRITE(*,'(a)')"Output options:"
CALL print_param("-no_out")
CALL print_param("-gen_enpara")
CALL print_param("-h")
WRITE(*,'(a)')""
WRITE(*,'(a)')"Control FLEUR job:"
CALL print_param("-check")
CALL print_param("-info")
CALL print_param("-wtime")
CALL print_param("-j")
CALL print_param("-f")
CALL print_param("-n_min_size")
CALL print_param("-diag")
CALL print_param("-eig")
WRITE(*,'(a)')""
WRITE(*,'(a)')"Options useful for debugging:"
CALL print_param("-warn_only")
CALL print_param("-trace")
CALL print_param("-debugtime")
#ifdef CPP_HDF
WRITE(*,'(a)')""
WRITE(*,'(a)')"HDF density file relevant options:"
CALL print_param("-no_cdn_hdf")
CALL print_param("-last_extra")
CALL print_param("-sd")
CALL print_param("-delden")
#endif
WRITE(*,'(a)')""
WRITE(*,'(a)')"Please check the documentation on www.flapw.de for more details."
CALL juDFT_end("",l_endXML=.FALSE.) !No message so do a not print more on exit
END SUBROUTINE fleur_help
END MODULE m_fleur_help
!--------------------------------------------------------------------------------
! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
! This file is part of FLEUR and available as free software under the conditions
! of the MIT license as expressed in the LICENSE file in more detail.
!--------------------------------------------------------------------------------
MODULE m_fleur_help
IMPLICIT NONE
CONTAINS
SUBROUTINE fleur_help()
USE m_compile_descr
USE m_constants
USE m_juDFT
IMPLICIT NONE
CHARACTER(LEN=500):: infostring
PRINT *," Welcome to FLEUR (www.flapw.de) "
PRINT *," MaX-Release 2.1 (www.max-centre.eu)"
IF (.NOT. (juDFT_was_argument("-h").OR.juDFT_was_argument("--help"))) RETURN
!now print version info and help on command line arguments:
CALL get_compile_desc_string(infostring)
WRITE(*,'(a500)') infostring
WRITE(*,'(a)')
WRITE(*,'(a)')"------------------------------------------------------"
WRITE(*,'(a)')"Usage info:"
WRITE(*,'(a)')"The following command line options are known:"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Control the input:"
WRITE(*,'(a)')"-xmlInput or -xml : use inp.xml instead of inp"
WRITE(*,'(a)')"-toXML : convert inp file to XML input file"
WRITE(*,'(a)')"-xmlXPath XXX=YYY : modify the xml-xpath of the inp.xml file"
WRITE(*,'(a)')"-n_min_size XXX : try to use at least XXX PE in Eigenvalue parallelization"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Output options:"
WRITE(*,'(a)')"-no_out : do not open out file but write to stdout"
WRITE(*,'(a)')"-genEnpara : write enpara file"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Control FLEUR job:"
WRITE(*,'(a)')"-check : run in check mode, i.e. stop after init"
WRITE(*,'(a)')"-wtime XXXXX : run for XXXX minutes (used to estimate if another iteration is started)"
WRITE(*,'(a)')"-j #:DIR : run subjob in directory DIR using # PEs"
WRITE(*,'(a)')"-f FILENAME : obtain info on subjobs from file FILENAME"
WRITE(*,'(a)')"-info : Print out information on recommended parallelization and available charge densities"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Options useful for debugging:"
WRITE(*,'(a)')"-warn_only : Do not stop in case of warnings"
WRITE(*,'(a)')"-trace : Try to generate stacktrace in case of an error"
WRITE(*,'(a)')"-debugtime : write out the start/stop of all timers to STDOUT"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Storage for eigenvalues:"
WRITE(*,'(a)')"-da,-mem,-mpi,-hdf: choose a storage for the eigenvalues"
WRITE(*,'(a)')" and eigenvectors. The default will"
WRITE(*,'(a)')" be -mem for serial and -mpi for parallel builds"
WRITE(*,'(a)')""
WRITE(*,'(a)')"Method used for diagonalization:"
WRITE(*,'(a)')"-lapack,-lapack2,"
WRITE(*,'(a)')"-elpa,-scalapack,"
WRITE(*,'(a)')"-elemental,-magma : choose diagonalization. Not all might be available"
WRITE(*,'(a)')""
WRITE(*,'(a)')"HDF density file relevant options:"
WRITE(*,'(a)')"-no_cdn_hdf : disable HDF charge density mode (activated by default if HDF5 is available)"
WRITE(*,'(a)')"-last_extra : generate an additional file cdn_last.hdf that contains only the last density"
WRITE(*,'(a)')"-sd N : use starting density N, where N is the index of the density according to -info"
WRITE(*,'(a)')"-delden N-M : delete densities N to M"
WRITE(*,'(a)')"-delden N : delete density N"
WRITE(*,'(a)')"-delden allbutlast : delete all but the last density"
WRITE(*,'(a)')""
WRITE(*,'(a)')"-h, --help : print this text :-)"
WRITE(*,'(a)')"Please check the documentation on www.flapw.de for more details"
CALL juDFT_end("help was written",l_endXML=.FALSE.)
END SUBROUTINE fleur_help
END MODULE m_fleur_help
......@@ -5,19 +5,22 @@
!--------------------------------------------------------------------------------
MODULE m_types_kpts
INTEGER,PARAMETER:: kpts_by_number=1
INTEGER,PARAMETER:: kpts_by_mesh =2
INTEGER,PARAMETER:: kpts_by_list =3
TYPE t_kpts
INTEGER :: specificationType
!no
INTEGER :: nkpt
INTEGER :: ntet
REAL :: posScale
LOGICAL :: l_gamma
!(3,nkpt) k-vectors internal units
REAL,ALLOCATABLE ::bk(:,:)
REAL,ALLOCATABLE :: bk(:,:)
!(nkpts) weights
REAL,ALLOCATABLE ::wtkpt(:)
REAL,ALLOCATABLE :: wtkpt(:)
INTEGER :: nkptf !<k-vectors in full BZ
INTEGER :: nkpt3(3)
REAL :: kPointDensity(3) ! only used if k point set is defined as density
......
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