Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
fleur
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
51
Issues
51
List
Boards
Labels
Service Desk
Milestones
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
fleur
fleur
Commits
59dbed39
Commit
59dbed39
authored
Jan 14, 2019
by
Andrea Hanke
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' of iffgit.fz-juelich.de:fleur/fleur into develop
parents
dc8b472e
4e17db7e
Changes
105
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
105 changed files
with
6660 additions
and
5578 deletions
+6660
-5578
.gitignore
.gitignore
+1
-0
.gitlab-ci.yml
.gitlab-ci.yml
+3
-3
cdn/cdnval.F90
cdn/cdnval.F90
+1
-1
cdn/genNewNocoInp.f90
cdn/genNewNocoInp.f90
+3
-3
cdn/qal_21.f90
cdn/qal_21.f90
+1
-1
cdn_mt/cdnmt.f90
cdn_mt/cdnmt.f90
+0
-1
cdn_mt/rhomt21.f90
cdn_mt/rhomt21.f90
+4
-4
cmake/Files_and_Targets.txt
cmake/Files_and_Targets.txt
+3
-3
cmake/compilerflags.cmake
cmake/compilerflags.cmake
+5
-5
cmake/store_environment.sh
cmake/store_environment.sh
+5
-5
core/cored.F90
core/cored.F90
+218
-218
diagonalization/CMakeLists.txt
diagonalization/CMakeLists.txt
+6
-6
diagonalization/chase_diag.F90
diagonalization/chase_diag.F90
+3
-1
diagonalization/eigen_diag.F90
diagonalization/eigen_diag.F90
+2
-0
diagonalization/elpa.F90
diagonalization/elpa.F90
+13
-10
diagonalization/elpa_20180525.F90
diagonalization/elpa_20180525.F90
+1
-0
diagonalization/elpa_20180525_onenode.F90
diagonalization/elpa_20180525_onenode.F90
+17
-1
eigen/eigen_hssetup.F90
eigen/eigen_hssetup.F90
+2
-0
eigen/hsvac.F90
eigen/hsvac.F90
+1
-1
eigen/tlmplm.F90
eigen/tlmplm.F90
+15
-8
eigen/tlmplm_cholesky.F90
eigen/tlmplm_cholesky.F90
+22
-23
eigen/vacfun.f90
eigen/vacfun.f90
+4
-19
global/CMakeLists.txt
global/CMakeLists.txt
+1
-1
global/savewigner.f90
global/savewigner.f90
+0
-0
hybrid/HF_init.F90
hybrid/HF_init.F90
+1
-6
hybrid/checkolap.F90
hybrid/checkolap.F90
+1
-6
hybrid/exchange_core.F90
hybrid/exchange_core.F90
+4
-9
hybrid/exchange_val_hf.F90
hybrid/exchange_val_hf.F90
+2
-2
hybrid/gen_wavf.F90
hybrid/gen_wavf.F90
+2
-6
hybrid/hf_setup.F90
hybrid/hf_setup.F90
+7
-7
hybrid/hsfock.F90
hybrid/hsfock.F90
+10
-20
hybrid/hybrid.F90
hybrid/hybrid.F90
+3
-4
hybrid/symm_hf.F90
hybrid/symm_hf.F90
+16
-36
init/efield.f90
init/efield.f90
+4
-4
init/postprocessInput.F90
init/postprocessInput.F90
+3
-1
inpgen/inpgen_arguments.F90
inpgen/inpgen_arguments.F90
+2
-1
inpgen/inpgen_help.f90
inpgen/inpgen_help.f90
+1
-0
inpgen/spg_gen.f
inpgen/spg_gen.f
+2
-2
io/loddop.f90
io/loddop.f90
+74
-68
io/r_inpXML.F90
io/r_inpXML.F90
+45
-1
io/w_inpXML.f90
io/w_inpXML.f90
+1
-1
io/writeBasis.F90
io/writeBasis.F90
+3
-11
io/wrtdop.f90
io/wrtdop.f90
+30
-23
io/xmlOutput.F90
io/xmlOutput.F90
+2
-0
juDFT/CMakeLists.txt
juDFT/CMakeLists.txt
+1
-0
juDFT/string.f90
juDFT/string.f90
+24
-0
juDFT/time.F90
juDFT/time.F90
+1
-1
juDFT/usage_data.F90
juDFT/usage_data.F90
+232
-82
main/cdngen.F90
main/cdngen.F90
+21
-2
main/fleur.F90
main/fleur.F90
+7
-3
main/fleur_arguments.F90
main/fleur_arguments.F90
+2
-1
main/fleur_help.F90
main/fleur_help.F90
+2
-0
main/fleur_init.F90
main/fleur_init.F90
+14
-3
math/CMakeLists.txt
math/CMakeLists.txt
+1
-1
math/rfft.F
math/rfft.F
+0
-1913
math/rfft.f90
math/rfft.f90
+1899
-0
mix/brysh1.f90
mix/brysh1.f90
+1
-0
mix/potdis.f90
mix/potdis.f90
+1
-1
mpi/mpi_dist_forcetheorem.F90
mpi/mpi_dist_forcetheorem.F90
+19
-1
mpi/setupMPI.F90
mpi/setupMPI.F90
+2
-0
optional/atom2.f90
optional/atom2.f90
+164
-166
types/types_potden.f90
types/types_potden.f90
+1
-1
types/types_xcpot.F90
types/types_xcpot.F90
+6
-0
types/types_xcpot_inbuild.F90
types/types_xcpot_inbuild.F90
+7
-0
vgen/rotate_mt_den_tofrom_local.f90
vgen/rotate_mt_den_tofrom_local.f90
+12
-4
vgen/vmts.F90
vgen/vmts.F90
+8
-6
xc-pot/CMakeLists.txt
xc-pot/CMakeLists.txt
+46
-52
xc-pot/corg91.f90
xc-pot/corg91.f90
+49
-49
xc-pot/corl91.f
xc-pot/corl91.f
+0
-80
xc-pot/corl91.f90
xc-pot/corl91.f90
+80
-0
xc-pot/corpbe.f90
xc-pot/corpbe.f90
+162
-0
xc-pot/easypbe.f90
xc-pot/easypbe.f90
+172
-0
xc-pot/excepbe.f
xc-pot/excepbe.f
+0
-105
xc-pot/excepbe.f90
xc-pot/excepbe.f90
+104
-0
xc-pot/exchpbe.f90
xc-pot/exchpbe.f90
+62
-63
xc-pot/excl91.f
xc-pot/excl91.f
+0
-204
xc-pot/excl91.f90
xc-pot/excl91.f90
+199
-0
xc-pot/excpw91.f
xc-pot/excpw91.f
+0
-204
xc-pot/excpw91.f90
xc-pot/excpw91.f90
+199
-0
xc-pot/excwb91.f
xc-pot/excwb91.f
+0
-201
xc-pot/excwb91.f90
xc-pot/excwb91.f90
+196
-0
xc-pot/gaunt.f90
xc-pot/gaunt.f90
+139
-0
xc-pot/grdchlh.f
xc-pot/grdchlh.f
+0
-389
xc-pot/grdchlh.f90
xc-pot/grdchlh.f90
+370
-0
xc-pot/mkgl0.f
xc-pot/mkgl0.f
+0
-79
xc-pot/mkgl0.f90
xc-pot/mkgl0.f90
+76
-0
xc-pot/pbecor2.f90
xc-pot/pbecor2.f90
+12
-12
xc-pot/potl0.f90
xc-pot/potl0.f90
+11
-10
xc-pot/relcor.f90
xc-pot/relcor.f90
+79
-0
xc-pot/vxcepbe.f
xc-pot/vxcepbe.f
+0
-140
xc-pot/vxcepbe.f90
xc-pot/vxcepbe.f90
+138
-0
xc-pot/vxcl91.f
xc-pot/vxcl91.f
+0
-226
xc-pot/vxcl91.f90
xc-pot/vxcl91.f90
+220
-0
xc-pot/vxcpw91.f
xc-pot/vxcpw91.f
+0
-229
xc-pot/vxcpw91.f90
xc-pot/vxcpw91.f90
+221
-0
xc-pot/vxcwb91.f
xc-pot/vxcwb91.f
+0
-230
xc-pot/vxcwb91.f90
xc-pot/vxcwb91.f90
+224
-0
xc-pot/xcall.f
xc-pot/xcall.f
+0
-205
xc-pot/xcallg.f
xc-pot/xcallg.f
+0
-235
xc-pot/xcbh.f90
xc-pot/xcbh.f90
+258
-0
xc-pot/xch91.f90
xc-pot/xch91.f90
+28
-28
xc-pot/xcpz.f90
xc-pot/xcpz.f90
+259
-0
xc-pot/xcvwn.f90
xc-pot/xcvwn.f90
+262
-0
xc-pot/xcwgn.f90
xc-pot/xcwgn.f90
+57
-59
xc-pot/xcxal.f90
xc-pot/xcxal.f90
+68
-71
No files found.
.gitignore
View file @
59dbed39
init/compileinfo.h
io/xml/inputSchema.h
Testing/*
*~
\#*
build
...
...
.gitlab-ci.yml
View file @
59dbed39
...
...
@@ -16,7 +16,7 @@ build-gfortran-hdf5:
paths
:
-
build
script
:
-
cd /builds/fleur/fleur; ./configure.sh GITLAB; cd build; make
-
cd /builds/fleur/fleur; ./configure.sh GITLAB; cd build; make
-j
4
# only:
# - schedules
# - triggers
...
...
@@ -100,7 +100,7 @@ build-intel:
-
build.intel
script
:
-
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 -t -l intel INTEL_MPI ; cd build.intel; make
-
cd /builds/fleur/fleur; FC=mpiifort FLEUR_LIBRARIES="-lmkl_scalapack_lp64;-lmkl_blacs_intelmpi_lp64" ./configure.sh -t -l intel INTEL_MPI ; cd build.intel; make
-j
4
only
:
-
schedules
-
triggers
...
...
@@ -133,7 +133,7 @@ gfortran-coverage:
paths
:
-
build
script
:
-
cd /builds/fleur/fleur; ./configure.sh -l coverage -flags --coverage GITLAB; cd build.coverage; make
-
cd /builds/fleur/fleur; ./configure.sh -l coverage -flags --coverage GITLAB; cd build.coverage; make
-j
4
-
lcov --capture --initial -d CMakeFiles -o baseline.info
-
ulimit -s unlimited ;export juDFT_MPI="mpirun -n 2 --allow-run-as-root ";ctest
-
lcov --capture -d CMakeFiles -o after.info
...
...
cdn/cdnval.F90
View file @
59dbed39
...
...
@@ -134,7 +134,7 @@ SUBROUTINE cdnval(eig_id, mpi,kpts,jspin,noco,input,banddos,cell,atoms,enpara,st
CALL
denCoeffs
%
init
(
atoms
,
sphhar
,
jsp_start
,
jsp_end
)
! The last entry in denCoeffsOffdiag%init is l_fmpl. It is meant as a switch to a plot of the full magnet.
! density without the atomic sphere approximation for the magnet. density. It is not completely implemented (lo's missing).
CALL
denCoeffsOffdiag
%
init
(
atoms
,
noco
,
sphhar
,
.FALSE.
)
CALL
denCoeffsOffdiag
%
init
(
atoms
,
noco
,
sphhar
,
noco
%
l_mtnocopot
)
CALL
force
%
init1
(
input
,
atoms
)
CALL
orb
%
init
(
atoms
,
noco
,
jsp_start
,
jsp_end
)
...
...
cdn/genNewNocoInp.f90
View file @
59dbed39
...
...
@@ -34,7 +34,7 @@ SUBROUTINE genNewNocoInp(input,atoms,noco,noco_new)
alphdiff
=
2.0
*
pi_const
*
(
noco
%
qss
(
1
)
*
atoms
%
taual
(
1
,
iAtom
)
+
&
noco
%
qss
(
2
)
*
atoms
%
taual
(
2
,
iAtom
)
+
&
noco
%
qss
(
3
)
*
atoms
%
taual
(
3
,
iAtom
)
)
noco_new
%
alph
(
iType
)
=
noco
%
alph
(
iType
)
-
alphdiff
noco_new
%
alph
(
iType
)
=
noco
_new
%
alph
(
iType
)
-
alphdiff
DO
WHILE
(
noco_new
%
alph
(
iType
)
>
+
pi_const
)
noco_new
%
alph
(
iType
)
=
noco_new
%
alph
(
iType
)
-
2.0
*
pi_const
END
DO
...
...
@@ -42,12 +42,12 @@ SUBROUTINE genNewNocoInp(input,atoms,noco,noco_new)
noco_new
%
alph
(
iType
)
=
noco_new
%
alph
(
iType
)
+
2.0
*
pi_const
END
DO
ELSE
noco_new
%
alph
(
iType
)
=
noco
%
alph
(
iType
)
noco_new
%
alph
(
iType
)
=
noco
_new
%
alph
(
iType
)
END
IF
iatom
=
iatom
+
atoms
%
neq
(
iType
)
END
DO
OPEN
(
24
,
file
=
'nocoinp'
,
form
=
'formatted'
,
status
=
'
old
'
)
OPEN
(
24
,
file
=
'nocoinp'
,
form
=
'formatted'
,
status
=
'
unknown
'
)
REWIND
(
24
)
CALL
rw_noco_write
(
atoms
,
noco_new
,
input
)
CLOSE
(
24
)
...
...
cdn/qal_21.f90
View file @
59dbed39
...
...
@@ -41,7 +41,7 @@ CONTAINS
! .. Intrinsic Functions ..
INTRINSIC
conjg
qal21
=
0.0
!---> l-decomposed density for each occupied state
states
:
DO
i
=
1
,
noccbd
nt1
=
1
...
...
cdn_mt/cdnmt.f90
View file @
59dbed39
...
...
@@ -62,7 +62,6 @@ CONTAINS
ENDIF
!$OMP PARALLEL DEFAULT(none) &
!$OMP SHARED(usdus,rho,moments,qmtl) &
!$OMP SHARED(atoms,jsp_start,jsp_end,enpara,vr,denCoeffs,sphhar)&
!$OMP SHARED(orb,noco,denCoeffsOffdiag,jspd)&
...
...
cdn_mt/rhomt21.f90
View file @
59dbed39
...
...
@@ -22,10 +22,10 @@ CONTAINS
! .. Array Arguments ..
REAL
,
INTENT
(
IN
)
::
we
(:)
!(nobd)
COMPLEX
,
INTENT
(
INOUT
)
::
uu21
(
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
ud21
(
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
du21
(
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
dd21
(
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
uu21
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
ud21
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
du21
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
dd21
(
0
:
atoms
%
lmaxd
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
uulo21
(
atoms
%
nlod
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
dulo21
(
atoms
%
nlod
,
atoms
%
ntype
)
COMPLEX
,
INTENT
(
INOUT
)
::
ulou21
(
atoms
%
nlod
,
atoms
%
ntype
)
...
...
cmake/Files_and_Targets.txt
View file @
59dbed39
...
...
@@ -55,17 +55,17 @@ io/calculator.f global/ss_sym.f global/soc_sym.f math/inv3.f io/rw_symfile.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 global/radsra.f math/intgr.F global/differ.f math/inwint.f
math/outint.f
xc-pot/gaunt.f
math/grule.f
math/outint.f math/grule.f
)
set(inpgen_F90 ${inpgen_F90} global/constants.f90 io/xsf_io.f90
eigen/orthoglo.F90 juDFT/usage_data.F90 math/ylm4.F90
global/sort.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
inpgen/closure.f90 inpgen/inpgen_arguments.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
juDFT/info.F90 juDFT/stop.F90 juDFT/args.F90 juDFT/time.F90 juDFT/init.F90 juDFT/sysinfo.F90
juDFT/string.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 kpoints/unfoldBandKPTS.f90)
eigen/tlmplm_store.F90
xc-pot/gaunt.f90
kpoints/unfoldBandKPTS.f90)
set(fleur_SRC ${fleur_F90} ${fleur_F77})
...
...
cmake/compilerflags.cmake
View file @
59dbed39
...
...
@@ -12,7 +12,7 @@ if (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel")
set
(
CMAKE_Fortran_FLAGS
"
${
CMAKE_Fortran_FLAGS
}
-mkl -r8 -qopenmp -assume byterecl"
)
endif
()
set
(
CMAKE_Fortran_FLAGS_RELEASE
"
${
CMAKE_Fortran_FLAGS_RELEASE
}
-xHost -O2 -g"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-C -traceback -O0 -g -ftrapuv -check uninit -check pointers -CB "
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-C -traceback -O0 -g -ftrapuv -check uninit -check pointers -CB
-DCPP_DEBUG
"
)
elseif
(
${
CMAKE_Fortran_COMPILER_ID
}
MATCHES
"PGI"
)
message
(
"PGI Fortran detected"
)
set
(
CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS
""
)
#fix problem in cmake
...
...
@@ -24,12 +24,12 @@ elseif(${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI")
#set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -mp -Mr8 -Mr8intrinsics -Mcuda:cuda9.0,cc70 -DUSE_STREAMS -DNUM_STREAMS=${N_STREAMS} -Minfo=accel -acc")
#set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fast -O3")
set
(
CMAKE_Fortran_FLAGS_RELEASE
"-O1 "
)
# to prevent cmake from putting -fast which auses problems with PGI18.4
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-C -traceback -O0 -g -Mchkstk -Mchkptr -Ktrap=fp"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-C -traceback -O0 -g -Mchkstk -Mchkptr -Ktrap=fp
-DCPP_DEBUG
"
)
elseif
(
${
CMAKE_Fortran_COMPILER_ID
}
MATCHES
"XL"
)
message
(
"IBM/BG Fortran detected"
)
set
(
CMAKE_Fortran_FLAGS
"
${
CMAKE_Fortran_FLAGS
}
-qsmp=omp -qnosave -qarch=qp -qtune=qp -qrealsize=8 -qfixed -qsuppress=1520-022 -qessl"
)
set
(
CMAKE_Fortran_FLAGS_RELEASE
"
${
CMAKE_Fortran_FLAGS_RELEASE
}
-O4 -qsuppress=1500-036"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-O0 -g"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-O0 -g
-DCPP_DEBUG
"
)
set
(
CMAKE_C_FLAGS
"
${
CMAKE_C_FLAGS
}
-I/bgsys/local/libxml2/include/libxml2"
)
set
(
FLEUR_DEFINITIONS
${
FLEUR_DEFINITIONS
}
"CPP_AIX"
)
set
(
FLEUR_MPI_DEFINITIONS
${
FLEUR_MPI_DEFINITIONS
}
"CPP_AIX"
)
...
...
@@ -39,6 +39,6 @@ elseif(${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU")
message
(
FATAL_ERROR
"Only modern versions of gfortran >6.3 will be able to compile FLEUR
\n
You need to specify a different compiler.
\n
See the docs at www.flapw.de.
\n
"
)
endif
()
set
(
CMAKE_Fortran_FLAGS
"
${
CMAKE_Fortran_FLAGS
}
-ffree-line-length-none -fopenmp -fdefault-real-8 "
)
set
(
CMAKE_Fortran_FLAGS_RELEASE
"
${
CMAKE_Fortran_FLAGS_RELEASE
}
-O
1
"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-fdump-core -Wall -Wextra -Warray-temporaries -fbacktrace -fcheck=all -finit-real=nan -O0 -g"
)
set
(
CMAKE_Fortran_FLAGS_RELEASE
"
${
CMAKE_Fortran_FLAGS_RELEASE
}
-O
2
"
)
set
(
CMAKE_Fortran_FLAGS_DEBUG
"
${
CMAKE_Fortran_FLAGS_DEBUG
}
-fdump-core -Wall -Wextra -Warray-temporaries -fbacktrace -fcheck=all -finit-real=nan -O0 -g
-DCPP_DEBUG
"
)
endif
()
cmake/store_environment.sh
View file @
59dbed39
...
...
@@ -3,11 +3,11 @@
echo
"set(compile_user
$USER
)"
>
config.cmake
#Some freqeuntly used Environment variables
if
[
-n
"
$HDF5_ROOT
"
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_ROOT
/lib"
;
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_ROOT
/include"
;
fi
if
[
-n
"
$HDF5_DIR
"
}
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_DIR
/lib"
;
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_DIR
/include"
;
fi
if
[
-n
"
$HDF5_LIB
"
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_LIB
"
;
fi
if
[
-n
"
$HDF5_INCLUDE
"
]
;
then
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_INCLUDE
"
;
fi
if
[
-n
"
$HDF5_MODULES
"
]
;
then
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_MODULES
"
;
fi
if
[
!
-z
${
HDF5_ROOT
+x
}
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_ROOT
/lib"
;
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_ROOT
/include"
;
fi
if
[
!
-z
${
HDF5_DIR
+x
}
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_DIR
/lib"
;
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_DIR
/include"
;
fi
if
[
!
-z
${
HDF5_LIB
+x
}
]
;
then
FLEUR_LIBDIR
=
"
$FLEUR_LIBDIR
$HDF5_LIB
"
;
fi
if
[
!
-z
${
HDF5_INCLUDE
+x
}
]
;
then
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_INCLUDE
"
;
fi
if
[
!
-z
${
HDF5_MODULES
+x
}
]
;
then
FLEUR_INCLUDEDIR
=
"
$FLEUR_INCLUDEDIR
$HDF5_MODULES
"
;
fi
...
...
core/cored.F90
View file @
59dbed39
diagonalization/CMakeLists.txt
View file @
59dbed39
...
...
@@ -10,13 +10,13 @@ diagonalization/symmetrize_matrix.f90
diagonalization/cusolver_diag.F90
diagonalization/elemental.F90
diagonalization/elpa_20180525_onenode.F90
)
if
(
FLEUR_USE_ELPA_20180525
)
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa_20180525.F90
)
else
()
#
if (FLEUR_USE_ELPA_20180525)
#
set(fleur_F90 ${fleur_F90}
#
diagonalization/elpa_20180525.F90
#
)
#
else()
set
(
fleur_F90
${
fleur_F90
}
diagonalization/elpa.F90
)
endif
()
#
endif()
diagonalization/chase_diag.F90
View file @
59dbed39
...
...
@@ -88,7 +88,7 @@ CONTAINS
END
SUBROUTINE
chase_distance
#ifdef CPP_CHASE
SUBROUTINE
init_chase
(
mpi
,
DIMENSION
,
atoms
,
kpts
,
noco
,
l_real
)
SUBROUTINE
init_chase
(
mpi
,
DIMENSION
,
input
,
atoms
,
kpts
,
noco
,
l_real
)
USE
m_types_mpimat
USE
m_types
USE
m_types_mpi
...
...
@@ -99,6 +99,7 @@ CONTAINS
TYPE
(
t_mpi
),
INTENT
(
IN
)
::
mpi
TYPE
(
t_dimension
),
INTENT
(
IN
)
::
dimension
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
TYPE
(
t_kpts
),
INTENT
(
IN
)
::
kpts
TYPE
(
t_noco
),
INTENT
(
IN
)
::
noco
...
...
@@ -472,6 +473,7 @@ CONTAINS
EXTERNAL
blacs_pinfo
,
blacs_gridinit
INTEGER
,
EXTERNAL
::
numroc
,
indxl2g
ALLOCATE
(
mat
%
blacsdata
)
mat
%
blacsdata
%
mpi_com
=
hmat
%
blacsdata
%
mpi_com
mat
%
global_size1
=
hmat
%
global_size1
mat
%
global_size2
=
hmat
%
global_size1
...
...
diagonalization/eigen_diag.F90
View file @
59dbed39
...
...
@@ -66,6 +66,7 @@ CONTAINS
USE
m_types_gpumat
USE
m_matrix_copy
USE
m_cusolver_diag
USE
m_judft_usage
IMPLICIT
NONE
#ifdef CPP_MPI
include
'mpif.h'
...
...
@@ -108,6 +109,7 @@ CONTAINS
CALL
timestart
(
"Diagonalization"
)
!Select the solver
CALL
add_usage_data
(
"diag-solver"
,
priv_select_solver
(
parallel
))
SELECT
CASE
(
priv_select_solver
(
parallel
))
CASE
(
diag_elpa
)
CALL
elpa_diag
(
hmat
,
smat
,
ne
,
eig
,
ev
)
...
...
diagonalization/elpa.F90
View file @
59dbed39
...
...
@@ -88,7 +88,6 @@ CONTAINS
#else
CALL
get_elpa_row_col_comms
(
hmat
%
blacsdata
%
mpi_com
,
hmat
%
blacsdata
%
myrow
,
hmat
%
blacsdata
%
mycol
,
mpi_comm_rows
,
mpi_comm_cols
)
#endif
!print *,"creating ELPA comms -- done"
num2
=
ne
!no of states solved for
...
...
@@ -130,13 +129,16 @@ CONTAINS
print
*
,
"elpa uses "
//
elpa_int_value_to_string
(
"complex_kernel"
,
kernel
)
//
" kernel"
endif
#endif
!print *,"Before elpa"
!ELPA -start here
! Solive generalized preblem
! Solve generalized problem
!
! 1. Calculate Cholesky factorization of Matrix S = U**T * U
! and invert triangular matrix U
! and invert triangular matrix U.
! Cholesky factorization:
! Only upper triangle needs to be set. On return, the upper triangle contains
! the Cholesky factor and the lower triangle is set to 0.
! invert_triangular:
! Inverts an upper triangular real or complex matrix.
!
! Please note: cholesky_complex/invert_trm_complex are not trimmed for speed.
! The only reason having them is that the Scalapack counterpart
...
...
@@ -183,6 +185,7 @@ CONTAINS
! H is only set in the upper half, solve_evp_real needs a full matrix
! Set lower half from upper half
! Set the lower half of the H matrix to zeros.
DO
i
=
1
,
hmat
%
matsize2
! Get global column corresponding to i and number of local rows up to
! and including the diagonal, these are unchanged in H
...
...
@@ -195,7 +198,7 @@ CONTAINS
ENDIF
ENDDO
! Use the ev_dist array to store the calculated values for the lower part.
IF
(
hmat
%
l_real
)
THEN
CALL
pdtran
(
hmat
%
global_size1
,
hmat
%
global_size1
,
1.d0
,
hmat
%
data_r
,
1
,
1
,&
hmat
%
blacsdata
%
blacs_desc
,
0.d0
,
ev_dist
%
data_r
,
1
,
1
,
ev_dist
%
blacsdata
%
blacs_desc
)
...
...
@@ -204,7 +207,7 @@ CONTAINS
hmat
%
blacsdata
%
blacs_desc
,
cmplx
(
0.d0
,
0.d0
),
ev_dist
%
data_c
,
1
,
1
,
ev_dist
%
blacsdata
%
blacs_desc
)
ENDIF
! Copy the calculated values to the lower part of the H matrix
DO
i
=
1
,
hmat
%
matsize2
! Get global column corresponding to i and number of local rows up to
! and including the diagonal, these are unchanged in H
...
...
@@ -254,7 +257,7 @@ CONTAINS
ENDIF
#endif
! 2b. tmp2 = e
igvec
**T
! 2b. tmp2 = e
v_dist
**T
IF
(
hmat
%
l_real
)
THEN
CALL
pdtran
(
ev_dist
%
global_size1
,
ev_dist
%
global_size1
,
1.d0
,
ev_dist
%
data_r
,
1
,
1
,&
ev_dist
%
blacsdata
%
blacs_desc
,
0.d0
,
tmp2_r
,
1
,
1
,
ev_dist
%
blacsdata
%
blacs_desc
)
...
...
@@ -325,7 +328,7 @@ CONTAINS
ENDDO
! 3. Calculate eigenvalues/eigenvectors of U**-T * A * U**-1
! Eigenvectors go to e
igvec
! Eigenvectors go to e
v_dist
#if defined (CPP_ELPA_201705003)
IF
(
hmat
%
l_real
)
THEN
CALL
elpa_obj
%
eigenvectors
(
hmat
%
data_r
,
eig2
,
ev_dist
%
data_r
,
err
)
...
...
@@ -389,7 +392,7 @@ CONTAINS
#endif
! 4. Backtransform eigenvectors: Z = U**-1 * e
igvec
! 4. Backtransform eigenvectors: Z = U**-1 * e
v_dist
! mult_ah_b_complex needs the transpose of U**-1, thus tmp2 = (U**-1)**T
IF
(
hmat
%
l_real
)
THEN
...
...
diagonalization/elpa_20180525.F90
View file @
59dbed39
...
...
@@ -71,6 +71,7 @@ CONTAINS
CALL
elpa_obj
%
set
(
"process_row"
,
hmat
%
blacsdata
%
myrow
,
err
)
CALL
elpa_obj
%
set
(
"process_col"
,
hmat
%
blacsdata
%
mycol
,
err
)
CALL
elpa_obj
%
set
(
"blacs_context"
,
hmat
%
blacsdata
%
blacs_desc
(
2
),
err
)
CALL
elpa_obj
%
set
(
"solver"
,
ELPA_SOLVER_2STAGE
)
err
=
elpa_obj
%
setup
()
CALL
hmat
%
generate_full_matrix
()
...
...
diagonalization/elpa_20180525_onenode.F90
View file @
59dbed39
...
...
@@ -28,6 +28,9 @@ CONTAINS
USE
m_types
#ifdef CPP_ELPA_ONENODE
USE
elpa
#endif
#ifdef CPP_GPU
USE
nvtx
#endif
IMPLICIT
NONE
...
...
@@ -45,7 +48,9 @@ CONTAINS
INTEGER
::
kernel
CLASS
(
elpa_t
),
pointer
::
elpa_obj
print
*
,
"ELPA 20180525 started"
#ifdef CPP_GPU
call
nvtxStartRange
(
"ELPA"
,
5
)
#endif
err
=
elpa_init
(
20180525
)
elpa_obj
=>
elpa_allocate
()
...
...
@@ -65,15 +70,23 @@ CONTAINS
CALL
elpa_obj
%
set
(
"gpu"
,
1
,
err
)
#endif
err
=
elpa_obj
%
setup
()
call
elpa_obj
%
get
(
"solver"
,
kernel
)
print
*
,
"elpa uses "
//
elpa_int_value_to_string
(
"solver"
,
kernel
)
//
" solver"
CALL
hmat
%
add_transpose
(
hmat
)
CALL
smat
%
add_transpose
(
smat
)
#ifdef CPP_GPU
call
nvtxStartRange
(
"EigVec"
,
7
)
#endif
IF
(
hmat
%
l_real
)
THEN
CALL
elpa_obj
%
generalized_eigenvectors
(
hmat
%
data_r
,
smat
%
data_r
,
eig2
,
ev_dist
%
data_r
,
.FALSE.
,
err
)
ELSE
CALL
elpa_obj
%
generalized_eigenvectors
(
hmat
%
data_c
,
smat
%
data_c
,
eig2
,
ev_dist
%
data_c
,
.FALSE.
,
err
)
ENDIF
#ifdef CPP_GPU
call
nvtxEndRange
!("EigVec",8)
#endif
CALL
elpa_deallocate
(
elpa_obj
)
CALL
elpa_uninit
()
...
...
@@ -86,6 +99,9 @@ CONTAINS
CALL
ev
%
alloc
(
hmat
%
l_real
,
hmat
%
matsize1
,
ne
)
CALL
ev
%
copy
(
ev_dist
,
1
,
1
)
#ifdef CPP_GPU
call
nvtxEndRange
!("ELPA",7)
#endif
#endif
END
SUBROUTINE
elpa_diag_onenode
...
...
eigen/eigen_hssetup.F90
View file @
59dbed39
...
...
@@ -95,8 +95,10 @@ CONTAINS
! In the parallel case also a redistribution happens
ALLOCATE
(
smat_final
,
mold
=
smat
(
1
,
1
))
ALLOCATE
(
hmat_final
,
mold
=
smat
(
1
,
1
))
CALL
timestart
(
"Matrix redistribution"
)
CALL
eigen_redist_matrix
(
mpi
,
lapw
,
atoms
,
smat
,
smat_final
)
CALL
eigen_redist_matrix
(
mpi
,
lapw
,
atoms
,
hmat
,
hmat_final
,
smat_final
)
CALL
timestop
(
"Matrix redistribution"
)
END
SUBROUTINE
eigen_hssetup
END
MODULE
m_eigen_hssetup
...
...
eigen/hsvac.F90
View file @
59dbed39
...
...
@@ -92,7 +92,7 @@ CONTAINS
jspin
=
jsp
CALL
vacfun
(&
vacuum
,
DIMENSION
,
stars
,&
jsp
,
input
,
noco
,
ipot
,&
jsp
,
input
,
noco
,
jspin1
,
jspin2
,&
sym
,
cell
,
ivac
,
evac
(
1
,
1
),
lapw
%
bkpt
,
v
%
vacxy
(:,:,
ivac
,
ipot
),
v
%
vacz
(:,:,:),
kvac1
,
kvac2
,
nv2
,&
tuuv
,
tddv
,
tudv
,
tduv
,
uz
,
duz
,
udz
,
dudz
,
ddnv
,
wronk
)
!
...
...
eigen/tlmplm.F90
View file @
59dbed39
...
...
@@ -31,7 +31,7 @@ CONTAINS
REAL
dvu
(
0
:
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+3
)/
2
,
0
:
sphhar
%
nlhd
)
REAL
uvd
(
0
:
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+3
)/
2
,
0
:
sphhar
%
nlhd
)
REAL
uvu
(
0
:
atoms
%
lmaxd
*
(
atoms
%
lmaxd
+3
)/
2
,
0
:
sphhar
%
nlhd
)
REAL
f
(
atoms
%
jmtd
,
2
,
0
:
atoms
%
lmaxd
),
g
(
atoms
%
jmtd
,
2
,
0
:
atoms
%
lmaxd
),
x
(
atoms
%
jmtd
)
REAL
f
(
atoms
%
jmtd
,
2
,
0
:
atoms
%
lmaxd
,
2
),
g
(
atoms
%
jmtd
,
2
,
0
:
atoms
%
lmaxd
,
2
),
x
(
atoms
%
jmtd
)
REAL
flo
(
atoms
%
jmtd
,
2
,
atoms
%
nlod
)
INTEGER
::
indt
(
0
:
SIZE
(
td
%
tuu
,
1
)
-1
)
...
...
@@ -40,14 +40,21 @@ CONTAINS
COMPLEX
::
cil
REAL
::
temp
INTEGER
i
,
l
,
l2
,
lamda
,
lh
,
lm
,
lmin
,
lmin0
,
lmp
,
lmpl
,
lmplm
,
lmx
,
lmxx
,
lp
,
info
,
in
INTEGER
lp1
,
lpl
,
mem
,
mems
,
mp
,
mu
,
nh
,
na
,
m
,
nsym
,
s
,
i_u
INTEGER
lp1
,
lpl
,
mem
,
mems
,
mp
,
mu
,
nh
,
na
,
m
,
nsym
,
s
,
i_u
,
jspin1
,
jspin2
vr0
=
v
%
mt
(:,:,
n
,
jsp
)
IF
(
jsp
<
3
)
vr0
(:,
0
)
=
0.0
CALL
genMTBasis
(
atoms
,
enpara
,
v
,
mpi
,
n
,
jspin
,
ud
,
f
,
g
,
flo
)
DO
i
=
MERGE
(
1
,
jspin
,
jspin
>
2
),
MERGE
(
2
,
jspin
,
jspin
>
2
)
CALL
genMTBasis
(
atoms
,
enpara
,
v
,
mpi
,
n
,
i
,
ud
,
f
(:,:,:,
i
),
g
(:,:,:,
i
),
flo
)
ENDDO
IF
(
jspin
>
2
)
THEN
jspin1
=
1
jspin2
=
2
ELSE
jspin1
=
jspin
;
jspin2
=
jspin
END
IF
na
=
SUM
(
atoms
%
neq
(:
n
-1
))
+1
nsym
=
atoms
%
ntypsy
(
na
)
nh
=
sphhar
%
nlh
(
nsym
)
...
...
@@ -73,22 +80,22 @@ CONTAINS
dvu
(
lpl
,
lh
)
=
0.0
ELSE
DO
i
=
1
,
atoms
%
jri
(
n
)
x
(
i
)
=
(
f
(
i
,
1
,
lp
)
*
f
(
i
,
1
,
l
)
+
f
(
i
,
2
,
lp
)
*
f
(
i
,
2
,
l
))
*
vr0
(
i
,
lh
)
x
(
i
)
=
(
f
(
i
,
1
,
lp
,
jspin1
)
*
f
(
i
,
1
,
l
,
jspin2
)
+
f
(
i
,
2
,
lp
,
jspin1
)
*
f
(
i
,
2
,
l
,
jspin2
))
*
vr0
(
i
,
lh
)
END
DO
CALL
intgr3
(
x
,
atoms
%
rmsh
(
1
,
n
),
atoms
%
dx
(
n
),
atoms
%
jri
(
n
),
temp
)
uvu
(
lpl
,
lh
)
=
temp
DO
i
=
1
,
atoms
%
jri
(
n
)
x
(
i
)
=
(
g
(
i
,
1
,
lp
)
*
f
(
i
,
1
,
l
)
+
g
(
i
,
2
,
lp
)
*
f
(
i
,
2
,
l
))
*
vr0
(
i
,
lh
)
x
(
i
)
=
(
g
(
i
,
1
,
lp
,
jspin1
)
*
f
(
i
,
1
,
l
,
jspin2
)
+
g
(
i
,
2
,
lp
,
jspin1
)
*
f
(
i
,
2
,
l
,
jspin2
))
*
vr0
(
i
,
lh
)
END
DO
CALL
intgr3
(
x
,
atoms
%
rmsh
(
1
,
n
),
atoms
%
dx
(
n
),
atoms
%
jri
(
n
),
temp
)
dvu
(
lpl
,
lh
)
=
temp
DO
i
=
1
,
atoms
%
jri
(
n
)
x
(
i
)
=
(
f
(
i
,
1
,
lp
)
*
g
(
i
,
1
,
l
)
+
f
(
i
,
2
,
lp
)
*
g
(
i
,
2
,
l
))
*
vr0
(
i
,
lh
)
x
(
i
)
=
(
f
(
i
,
1
,
lp
,
jspin1
)
*
g
(
i
,
1
,
l
,
jspin2
)
+
f
(
i
,
2
,
lp
,
jspin1
)
*
g
(
i
,
2
,
l
,
jspin2
))
*
vr0
(
i
,
lh
)
END
DO
CALL
intgr3
(
x
,
atoms
%
rmsh
(
1
,
n
),
atoms
%
dx
(
n
),
atoms
%
jri
(
n
),
temp
)
uvd
(
lpl
,
lh
)
=
temp
DO
i
=
1
,
atoms
%
jri
(
n
)
x
(
i
)
=
(
g
(
i
,
1
,
lp
)
*
g
(
i
,
1
,
l
)
+
g
(
i
,
2
,
lp
)
*
g
(
i
,
2
,
l
))
*
vr0
(
i
,
lh
)
x
(
i
)
=
(
g
(
i
,
1
,
lp
,
jspin1
)
*
g
(
i
,
1
,
l
,
jspin2
)
+
g
(
i
,
2
,
lp
,
jspin1
)
*
g
(
i
,
2
,
l
,
jspin2
))
*
vr0
(
i
,
lh
)
END
DO
CALL
intgr3
(
x
,
atoms
%
rmsh
(
1
,
n
),
atoms
%
dx
(
n
),
atoms
%
jri
(
n
),
temp
)
dvd
(
lpl
,
lh
)
=
temp
...
...
eigen/tlmplm_cholesky.F90
View file @
59dbed39
...
...
@@ -112,6 +112,7 @@ CONTAINS
ENDDO
END
DO
!Now add diagonal contribution to matrices
IF
(
jsp
<
3
)
THEN
DO
l
=
0
,
atoms
%
lmax
(
n
)
DO
m
=
-
l
,
l
lm
=
l
*
(
l
+1
)
+
m
...
...
@@ -122,7 +123,6 @@ CONTAINS
td
%
tdu
(
lmplm
,
n
,
jsp
)
=
td
%
tdu
(
lmplm
,
n
,
jsp
)
+
0.5
ENDDO
ENDDO
!Create Cholesky decomposition of local hamiltonian
!---> Add diagonal terms to make matrix positive definite
...
...
@@ -136,7 +136,6 @@ CONTAINS
IF
(
lmp
+1.
NE
.
s
)
CALL
judft_error
(
"BUG in tlmpln_cholesky"
)
!Perform cholesky decomposition
info
=
0
IF
(
jsp
<
3
)
THEN
CALL
zpotrf
(
"L"
,
2
*
s
,
td
%
h_loc
(:,:,
n
,
jsp
),
SIZE
(
td
%
h_loc
,
1
),
info
)
!Upper part to zero
...
...
eigen/vacfun.f90
View file @
59dbed39
...
...
@@ -2,7 +2,7 @@ MODULE m_vacfun
use
m_juDFT
CONTAINS
SUBROUTINE
vacfun
(&
vacuum
,
dimension
,
stars
,
jsp
,
input
,
noco
,
ipot
,&
vacuum
,
DIMENSION
,
stars
,
jsp
,
input
,
noco
,
jsp1
,
jsp2
,&
sym
,
cell
,
ivac
,
evac
,
bkpt
,
vxy
,
vz
,
kvac1
,
kvac2
,
nv2
,&
tuuv
,
tddv
,
tudv
,
tduv
,
uz
,
duz
,
udz
,
dudz
,
ddnv
,
wronk
)
!*********************************************************************
...
...
@@ -28,7 +28,7 @@ CONTAINS
TYPE
(
t_cell
),
INTENT
(
IN
)
::
cell
! ..
! .. Scalar Arguments ..
INTEGER
,
INTENT
(
IN
)
::
jsp
,
ivac
,
ipot
INTEGER
,
INTENT
(
IN
)
::
jsp
,
ivac
,
jsp1
,
jsp2
REAL
,
INTENT
(
OUT
)
::
wronk
! ..
! .. Array Arguments ..
...
...
@@ -46,7 +46,7 @@ CONTAINS
! .. Local Scalars ..
REAL
ev
,
scale
,
xv
,
yv
,
vzero
COMPLEX
phase
INTEGER
i
,
i1
,
i2
,
i3
,
ik
,
ind2
,
ind3
,
jk
,
np1
,
jspin
,
jsp1
,
jsp2
INTEGER
i
,
i1
,
i2
,
i3
,
ik
,
ind2
,
ind3
,
jk
,
np1
,
jspin
LOGICAL
tail
! ..
! .. Local Arrays ..
...
...
@@ -87,21 +87,6 @@ CONTAINS
enddo
ENDDO
!---> set up the tuuv, etc. matrices
IF
(
noco
%
l_noco
)
THEN
IF
(
ipot
.EQ.
1
)
THEN
jsp1
=
1
jsp2
=
1
ELSEIF
(
ipot
.EQ.
2
)
THEN
jsp1
=
2
jsp2
=
2
ELSEIF
(
ipot
.EQ.
3
)
THEN
jsp1
=
2
jsp2
=
1
ENDIF
ELSE
jsp1
=
jsp
jsp2
=
jsp
ENDIF
DO
ik
=
1
,
nv2
(
jsp1
)
DO
jk
=
1
,
nv2
(
jsp2
)
...
...
@@ -175,7 +160,7 @@ CONTAINS
ELSE
!---> diagonal (film muffin-tin) terms
IF
(
(
ipot
.EQ.
1
)
.OR.
(
ipot
.EQ.
2
)
)
THEN
IF
(
jsp1
==
jsp2
)
THEN
tuuv
(
ik
,
ik
)
=
cmplx
(
evac
(
ivac
,
jsp1
),
0.0
)
tddv
(
ik
,
ik
)
=
cmplx
(
evac
(
ivac
,
jsp1
)
*
ddnv
(
ik
,
jsp1
),
0.0
)
tudv
(
ik
,
ik
)
=
cmplx
(
0.5
,
0.0
)
...
...
global/CMakeLists.txt
View file @
59dbed39
...
...
@@ -13,11 +13,11 @@ global/triang.f
global/vacudz.f
global/vacuz.f
global/abcrot.f
global/savewigner.f
global/differ.f
)
set
(
fleur_F90
${
fleur_F90
}
global/constants.f90
global/savewigner.f90
#global/differ.f90
global/matrix_copy.F90
global/checkdop.F90
...
...
global/savewigner.f
→
global/savewigner.f
90
View file @
59dbed39
File moved
hybrid/HF_init.F90
View file @
59dbed39
...
...
@@ -4,7 +4,7 @@ MODULE m_hf_init
! preparations for HF and hybrid functional calculation
!
CONTAINS
SUBROUTINE
hf_init
(
hybrid
,
kpts
,
atoms
,
input
,
DIMENSION
,
hybdat
,
irank2
,
isize2
,
l_real
)
SUBROUTINE
hf_init
(
hybrid
,
kpts
,
atoms
,
input
,
DIMENSION
,
hybdat
,
l_real
)
USE
m_types
USE
m_read_core
USE
m_util
...
...
@@ -15,7 +15,6 @@ CONTAINS
TYPE
(
t_atoms
),
INTENT
(
IN
)
::
atoms
TYPE
(
t_input
),
INTENT
(
IN
)
::
input
TYPE
(
t_dimension
),
INTENT
(
IN
)
::
DIMENSION
INTEGER
,
INTENT
(
OUT
)
::
irank2
(:),
isize2
(:)
TYPE
(
t_hybdat
),
INTENT
(
OUT
)
::
hybdat