mirror of https://gitlab.com/QEF/q-e.git
XClib - qe_dft_list incorporated
This commit is contained in:
parent
e1bc1a89fd
commit
d36c1cbc3a
|
@ -1,6 +1,7 @@
|
||||||
set(sources_xclib
|
set(sources_xclib
|
||||||
dft_mod.f90
|
dft_mod.f90
|
||||||
qe_constants.f90
|
qe_constants.f90
|
||||||
|
qe_dft_list.f90
|
||||||
qe_drivers_d_gga.f90
|
qe_drivers_d_gga.f90
|
||||||
qe_drivers_d_lda_lsda.f90
|
qe_drivers_d_lda_lsda.f90
|
||||||
qe_drivers_gga.f90
|
qe_drivers_gga.f90
|
||||||
|
|
|
@ -11,6 +11,7 @@ qe_kind.o \
|
||||||
qe_constants.o \
|
qe_constants.o \
|
||||||
xc_input_params_mod.o \
|
xc_input_params_mod.o \
|
||||||
dft_mod.o \
|
dft_mod.o \
|
||||||
|
qe_dft_list.o \
|
||||||
qe_funct_corr_lda_lsda.o \
|
qe_funct_corr_lda_lsda.o \
|
||||||
qe_funct_exch_lda_lsda.o \
|
qe_funct_exch_lda_lsda.o \
|
||||||
qe_funct_corr_gga.o \
|
qe_funct_corr_gga.o \
|
||||||
|
|
|
@ -49,6 +49,7 @@ CONTAINS
|
||||||
discard_input_dft, is_libxc, dft, exc, &
|
discard_input_dft, is_libxc, dft, exc, &
|
||||||
corr, gradx, gradc, meta, nxc, ncc, ngcx,&
|
corr, gradx, gradc, meta, nxc, ncc, ngcx,&
|
||||||
ngcc, nmeta, scan_exx, notset
|
ngcc, nmeta, scan_exx, notset
|
||||||
|
USE qe_dft_list, ONLY: get_IDs_from_shortname
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
|
@ -62,9 +63,10 @@ CONTAINS
|
||||||
LOGICAL :: dft_defined
|
LOGICAL :: dft_defined
|
||||||
LOGICAL :: check_libxc
|
LOGICAL :: check_libxc
|
||||||
CHARACTER(len=1) :: lxc
|
CHARACTER(len=1) :: lxc
|
||||||
|
INTEGER :: ID_vec(6)
|
||||||
#if defined(__LIBXC)
|
#if defined(__LIBXC)
|
||||||
INTEGER :: ii, id_vec(6), n_ext_params
|
INTEGER :: ii, n_ext_params
|
||||||
INTEGER :: flag_v(16), exp2, ftot, ftotx
|
INTEGER :: flag_v(16), ID_vec(6), exp2, ftot, ftotx
|
||||||
TYPE(xc_f03_func_t) :: xc_func03
|
TYPE(xc_f03_func_t) :: xc_func03
|
||||||
TYPE(xc_f03_func_info_t) :: xc_info03
|
TYPE(xc_f03_func_info_t) :: xc_info03
|
||||||
#endif
|
#endif
|
||||||
|
@ -102,137 +104,19 @@ CONTAINS
|
||||||
! Note: comparison is done via exact matching
|
! Note: comparison is done via exact matching
|
||||||
! ----------------------------------------------
|
! ----------------------------------------------
|
||||||
!
|
!
|
||||||
SELECT CASE( TRIM(dftout) )
|
CALL get_IDs_from_shortname( dftout, ID_vec(1:6) )
|
||||||
! special cases : PZ (LDA is equivalent to PZ)
|
|
||||||
CASE( 'PZ', 'LDA' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,1,0,0,0,0)
|
|
||||||
! speciale cases : PW ( LDA with PW correlation )
|
|
||||||
CASE( 'PW' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,0,0,0,0)
|
|
||||||
! special cases : VWN-RPA
|
|
||||||
CASE( 'VWN-RPA' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,11,0,0,0,0)
|
|
||||||
! special cases : OEP no GC part (nor LDA...) and no correlation by default
|
|
||||||
CASE( 'OEP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(4,0,0,0,0,0)
|
|
||||||
!
|
!
|
||||||
CASE( 'KLI' )
|
IF ( ALL(ID_vec(1:6)/=notset) ) THEN
|
||||||
dft_defined = xclib_set_dft_IDs(10,0,0,0,0,0)
|
|
||||||
! special cases : HF no GC part (nor LDA...) and no correlation by default
|
|
||||||
CASE( 'HF' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(5,0,0,0,0,0)
|
|
||||||
! special case : PBE
|
|
||||||
CASE( 'PBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,3,4,0,0)
|
|
||||||
! special case : B88
|
|
||||||
CASE( 'B88' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,1,1,0,0,0)
|
|
||||||
! special case : BP = B88 + P86
|
|
||||||
CASE( 'BP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,1,1,1,0,0)
|
|
||||||
! special case : PW91 = GGX + GGC
|
|
||||||
CASE( 'PW91' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,2,2,0,0)
|
|
||||||
! special case : revPBE
|
|
||||||
CASE( 'REVPBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,4,4,0,0)
|
|
||||||
! special case : PBEsol
|
|
||||||
CASE( 'PBESOL' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,10,8,0,0)
|
|
||||||
! special cases : BLYP (note, BLYP=>B88)
|
|
||||||
CASE( 'BLYP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,3,1,3,0,0)
|
|
||||||
! Special case optB88
|
|
||||||
CASE( 'OPTBK88' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,23,1,0,0)
|
|
||||||
! Special case optB86b
|
|
||||||
CASE( 'OPTB86B' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,24,1,0,0)
|
|
||||||
! special case : PBC = PW + PBC
|
|
||||||
CASE( 'PBC' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,0,4,0,0)
|
|
||||||
! special case : HCTH
|
|
||||||
CASE( 'HCTH' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,5,5,0,0)
|
|
||||||
CALL xclib_error( 'set_dft_from_name', 'HCTH yields suspicious results', 1 )
|
|
||||||
! special case : OLYP = OPTX + LYP
|
|
||||||
CASE( 'OLYP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,3,6,3,0,0)
|
|
||||||
CALL xclib_error( 'set_dft_from_name', 'OLYP yields suspicious results', 1 )
|
|
||||||
! special case : Wu-Cohen
|
|
||||||
CASE( 'WC' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,11,4,0,0)
|
|
||||||
! special case : PW86PBE
|
|
||||||
CASE( 'PW86PBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,21,4,0,0)
|
|
||||||
! special case : B86BPBE
|
|
||||||
CASE( 'B86BPBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,22,4,0,0)
|
|
||||||
! special case : PBEQ2D
|
|
||||||
CASE( 'PBEQ2D', 'Q2D' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,19,12,0,0)
|
|
||||||
! special case : SOGGA = SOX + PBEc
|
|
||||||
CASE( 'SOGGA' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,17,4,0,0)
|
|
||||||
! special case : Engel-Vosko
|
|
||||||
CASE( 'EV93' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,25,0,0,0)
|
|
||||||
! special case : RPBE
|
|
||||||
CASE( 'RPBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,44,4,0,0)
|
|
||||||
! special case : PBE0
|
|
||||||
CASE( 'PBE0' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(6,4,8,4,0,0)
|
|
||||||
! special case : B86BPBEX
|
|
||||||
CASE( 'B86BPBEX' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(6,4,41,4,0,0)
|
|
||||||
!
|
!
|
||||||
CASE( 'BHAHLYP', 'BHANDHLYP' )
|
iexch = ID_vec(1) ; icorr = ID_vec(2)
|
||||||
dft_defined = xclib_set_dft_IDs(6,4,42,3,0,0)
|
igcx = ID_vec(3) ; igcc = ID_vec(4)
|
||||||
! special case : HSE
|
imeta = ID_vec(5) ; imetac= ID_vec(6)
|
||||||
CASE( 'HSE' )
|
dft_defined = .TRUE.
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,12,4,0,0)
|
|
||||||
! special case : GAUPBE
|
|
||||||
CASE( 'GAUP', 'GAUPBE' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,20,4,0,0)
|
|
||||||
! special case : B3LYP
|
|
||||||
CASE( 'B3LYP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(7,12,9,7,0,0)
|
|
||||||
! special case : B3LYP-VWN-1-RPA hybrid
|
|
||||||
CASE( 'B3LYP-V1R' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(7,13,9,7,0,0)
|
|
||||||
! special case : X3LYP hybrid
|
|
||||||
CASE( 'X3LYP' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(9,14,28,13,0,0)
|
|
||||||
! special case : TPSS meta-GGA Exc
|
|
||||||
CASE( 'TPSS' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,7,6,1,0)
|
|
||||||
! special case : TPSS meta-GGA - mgga term only
|
|
||||||
CASE( 'TPSS-only' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,0,0,1,0)
|
|
||||||
! special case : M06L Meta GGA
|
|
||||||
CASE( 'M06L' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,0,0,2,0)
|
|
||||||
! special case : TB09 meta-GGA Exc
|
|
||||||
CASE( 'TB09' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,0,0,3,0)
|
|
||||||
! special case : SCAN Meta GGA
|
|
||||||
CASE( 'SCAN' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,0,0,5,0)
|
|
||||||
! special case : SCAN0
|
|
||||||
CASE( 'SCAN0' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(0,0,0,0,6,0)
|
|
||||||
! special case : PZ/LDA + null meta-GGA
|
|
||||||
CASE( 'PZ+META', 'LDA+META' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,1,0,0,4,0)
|
|
||||||
! special case : PBE + null meta-GGA
|
|
||||||
CASE( 'PBE+META' )
|
|
||||||
dft_defined = xclib_set_dft_IDs(1,4,3,4,4,0)
|
|
||||||
!
|
!
|
||||||
CASE DEFAULT
|
ELSE
|
||||||
!
|
!
|
||||||
! ----------------------------------------------------------------------
|
! ----------------------------------------------------------------------
|
||||||
! CHECK LIBXC FUNCTIONALS BY INDEX NOTATION, IF PRESENT (USED in PHonon)
|
! CHECK LIBXC FUNCTIONALS BY INDEX NOTATION, IF PRESENT
|
||||||
! ----------------------------------------------------------------------
|
! ----------------------------------------------------------------------
|
||||||
!
|
!
|
||||||
IF (dftout(1:3) .EQ. 'XC-') THEN
|
IF (dftout(1:3) .EQ. 'XC-') THEN
|
||||||
|
@ -270,10 +154,10 @@ CONTAINS
|
||||||
!
|
!
|
||||||
ENDIF
|
ENDIF
|
||||||
!
|
!
|
||||||
END SELECT
|
ENDIF
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
! ... A temporary fix to keep the q-e input notation for SCAN-functionals
|
! ... A workaround to keep the q-e input notation for SCAN-functionals
|
||||||
! valid.
|
! valid.
|
||||||
#if defined(__LIBXC)
|
#if defined(__LIBXC)
|
||||||
IF (imeta==5 .OR. imeta==6) THEN
|
IF (imeta==5 .OR. imeta==6) THEN
|
||||||
|
@ -316,9 +200,9 @@ CONTAINS
|
||||||
! functionals (if present)
|
! functionals (if present)
|
||||||
!------------------------------------------------------------------
|
!------------------------------------------------------------------
|
||||||
!
|
!
|
||||||
id_vec(1) = iexch ; id_vec(2) = icorr
|
ID_vec(1) = iexch ; ID_vec(2) = icorr
|
||||||
id_vec(3) = igcx ; id_vec(4) = igcc
|
ID_vec(3) = igcx ; ID_vec(4) = igcc
|
||||||
id_vec(5) = imeta ; id_vec(6) = imetac
|
ID_vec(5) = imeta ; ID_vec(6) = imetac
|
||||||
!
|
!
|
||||||
n_ext_params = 0
|
n_ext_params = 0
|
||||||
DO ii = 1, 6
|
DO ii = 1, 6
|
||||||
|
@ -1411,89 +1295,28 @@ CONTAINS
|
||||||
!
|
!
|
||||||
USE dft_par_mod, ONLY: iexch, icorr, igcx, igcc, imeta, imetac, corr, &
|
USE dft_par_mod, ONLY: iexch, icorr, igcx, igcc, imeta, imetac, corr, &
|
||||||
is_libxc, scan_exx, notset
|
is_libxc, scan_exx, notset
|
||||||
|
USE qe_dft_list, ONLY: dft_LDAc_name, get_shortname_from_IDs
|
||||||
!
|
!
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
CHARACTER(LEN=32) :: xclib_get_dft_short
|
CHARACTER(LEN=32) :: xclib_get_dft_short
|
||||||
CHARACTER(LEN=32) :: shortname
|
CHARACTER(LEN=32) :: shortname
|
||||||
|
INTEGER :: ID_vec(6)
|
||||||
!
|
!
|
||||||
shortname = 'no shortname'
|
shortname = 'no shortname'
|
||||||
!
|
!
|
||||||
IF ( .NOT. xclib_dft_is_libxc('ANY')) THEN
|
ID_vec(1) = iexch ; ID_vec(2) = icorr
|
||||||
|
ID_vec(3) = igcx ; ID_vec(4) = igcc
|
||||||
|
ID_vec(5) = imeta ; ID_vec(6) = imetac
|
||||||
!
|
!
|
||||||
IF ( iexch==1 .AND. igcx==0 .AND. igcc==0) THEN
|
CALL get_shortname_from_IDs( ID_vec, shortname )
|
||||||
shortname = TRIM(corr(icorr))
|
!
|
||||||
ELSEIF (iexch==4 .AND. icorr==0 .AND. igcx==0 .AND. igcc== 0) THEN
|
IF ( shortname/='no shortname' .AND. iexch==1 .AND. igcx==0 .AND. igcc==0) THEN
|
||||||
shortname = 'OEP'
|
shortname = TRIM(dft_LDAc_name(icorr))
|
||||||
ELSEIF (iexch==1 .AND. icorr==11 .AND. igcx==0 .AND. igcc== 0) THEN
|
|
||||||
shortname = 'VWN-RPA'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==3 .AND. igcx==1 .AND. igcc== 3) THEN
|
|
||||||
shortname = 'BLYP'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==1 .AND. igcx==1 .AND. igcc== 0) THEN
|
|
||||||
shortname = 'B88'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==1 .AND. igcx==1 .AND. igcc== 1) THEN
|
|
||||||
shortname = 'BP'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==2 .AND. igcc== 2) THEN
|
|
||||||
shortname = 'PW91'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==3 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'PBE'
|
|
||||||
ELSEIF (iexch==6 .AND. icorr==4 .AND. igcx==8 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'PBE0'
|
|
||||||
ELSEIF (iexch==6 .AND. icorr==4 .AND. igcx==41 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'B86BPBEX'
|
|
||||||
ELSEIF (iexch==6 .AND. icorr==4 .AND. igcx==42 .AND. igcc== 3) THEN
|
|
||||||
shortname = 'BHANDHLYP'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==4 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'revPBE'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==10 .AND. igcc== 8) THEN
|
|
||||||
shortname = 'PBESOL'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==19 .AND. igcc==12) THEN
|
|
||||||
shortname = 'Q2D'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==12 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'HSE'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==20 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'GAUPBE'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==21 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'PW86PBE'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==22 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'B86BPBE'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==11 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'WC'
|
|
||||||
ELSEIF (iexch==7 .AND. icorr==12 .AND. igcx==9 .AND. igcc== 7) THEN
|
|
||||||
shortname = 'B3LYP'
|
|
||||||
ELSEIF (iexch==7 .AND. icorr==13 .AND. igcx==9 .AND. igcc== 7) THEN
|
|
||||||
shortname = 'B3LYP-V1R'
|
|
||||||
ELSEIF (iexch==9 .AND. icorr==14 .AND. igcx==28 .AND. igcc==13) THEN
|
|
||||||
shortname = 'X3LYP'
|
|
||||||
ELSEIF (iexch==0 .AND. icorr==3 .AND. igcx==6 .AND. igcc== 3) THEN
|
|
||||||
shortname = 'OLYP'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==17 .AND. igcc== 4) THEN
|
|
||||||
shortname = 'SOGGA'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==23 .AND. igcc== 1) THEN
|
|
||||||
shortname = 'OPTBK88'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==24 .AND. igcc== 1) THEN
|
|
||||||
shortname = 'OPTB86B'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==25 .AND. igcc== 0) THEN
|
|
||||||
shortname = 'EV93'
|
|
||||||
ELSEIF (iexch==5 .AND. icorr==0 .AND. igcx==0 .AND. igcc== 0) THEN
|
|
||||||
shortname = 'HF'
|
|
||||||
ENDIF
|
ENDIF
|
||||||
!
|
!
|
||||||
IF (imeta==1) THEN
|
|
||||||
shortname = 'TPSS'
|
|
||||||
ELSEIF (imeta == 2) THEN
|
|
||||||
shortname = 'M06L'
|
|
||||||
ELSEIF (imeta == 4) THEN
|
|
||||||
IF ( iexch == 1 .AND. icorr == 1) THEN
|
|
||||||
shortname = 'PZ+META'
|
|
||||||
ELSEIF (iexch==1 .AND. icorr==4 .AND. igcx==3 .AND. igcc==4) THEN
|
|
||||||
shortname = 'PBE+META'
|
|
||||||
ENDIF
|
|
||||||
ENDIF
|
|
||||||
!
|
!
|
||||||
ENDIF
|
IF ( ANY(is_libxc(5:6)) ) THEN
|
||||||
!
|
|
||||||
IF (is_libxc(5) .AND. is_libxc(6)) THEN
|
|
||||||
IF (imeta==263 .AND. imetac==267) THEN
|
IF (imeta==263 .AND. imetac==267) THEN
|
||||||
shortname = 'SCAN'
|
shortname = 'SCAN'
|
||||||
IF (scan_exx) shortname = 'SCAN0'
|
IF (scan_exx) shortname = 'SCAN0'
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
dft_mod.o : qe_kind.o
|
dft_mod.o : qe_kind.o
|
||||||
dft_mod.o : xc_input_params_mod.o
|
dft_mod.o : xc_input_params_mod.o
|
||||||
dft_mod.o : xclib_utils_and_para.o
|
dft_mod.o : xclib_utils_and_para.o
|
||||||
|
dft_mod.o : qe_dft_list.o
|
||||||
qe_constants.o : qe_kind.o
|
qe_constants.o : qe_kind.o
|
||||||
qe_drivers_d_gga.o : qe_drivers_gga.o
|
qe_drivers_d_gga.o : qe_drivers_gga.o
|
||||||
qe_drivers_d_gga.o : qe_kind.o
|
qe_drivers_d_gga.o : qe_kind.o
|
||||||
|
|
|
@ -15,11 +15,12 @@ MODULE qe_dft_list
|
||||||
!
|
!
|
||||||
! -- single DFT terms (family-type)
|
! -- single DFT terms (family-type)
|
||||||
INTEGER, PARAMETER :: nxc=8, ncc=10, ngcx=46, ngcc=13, nmeta=6
|
INTEGER, PARAMETER :: nxc=8, ncc=10, ngcx=46, ngcc=13, nmeta=6
|
||||||
CHARACTER(LEN=4) :: dft_LDAx_name(0:nxc), dft_LDAx_ref(0:nxc), &
|
CHARACTER(LEN=4) :: dft_LDAx_name(0:nxc), dft_LDAc_name(0:ncc), &
|
||||||
dft_LDAc_name(0:ncc), dft_LDAc_ref(0:ncc), &
|
dft_GGAx_name(0:ngcx), dft_GGAc_name(0:ngcc), &
|
||||||
dft_GGAx_name(0:ngcx), dft_GGAx_ref(0:ngcx), &
|
dft_MGGA_name(0:nmeta)
|
||||||
dft_GGAc_name(0:ngcc), dft_GGAc_ref(0:ngcc), &
|
CHARACTER(LEN=150) :: dft_LDAx_ref(0:nxc), dft_LDAc_ref(0:ncc), &
|
||||||
dft_MGGAx_name(0:nmeta),dft_MGGAx_ref(0:nmeta)
|
dft_GGAx_ref(0:ngcx), dft_GGAc_ref(0:ngcc), &
|
||||||
|
dft_MGGA_ref(0:nmeta)
|
||||||
!
|
!
|
||||||
! -- total DFTs
|
! -- total DFTs
|
||||||
INTEGER, PARAMETER :: n_dft = 41
|
INTEGER, PARAMETER :: n_dft = 41
|
||||||
|
@ -157,8 +158,8 @@ MODULE qe_dft_list
|
||||||
DATA dft_GGAx_name(17) / 'GAUP' /
|
DATA dft_GGAx_name(17) / 'GAUP' /
|
||||||
DATA dft_GGAx_ref(17) / 'J.-W. Song, K. Yamashita, K. Hirao JCP 135, 071103 (2011)' /
|
DATA dft_GGAx_ref(17) / 'J.-W. Song, K. Yamashita, K. Hirao JCP 135, 071103 (2011)' /
|
||||||
!
|
!
|
||||||
DATA dft_GGAx_ref(18) / 'PW86' /
|
DATA dft_GGAx_name(18) / 'PW86' /
|
||||||
DATA dft_GGAx_name(18) / 'J.P.Perdew, PRB 33, 8800 (1986)' /
|
DATA dft_GGAx_ref(18) / 'J.P.Perdew, PRB 33, 8800 (1986)' /
|
||||||
!
|
!
|
||||||
DATA dft_GGAx_name(19) / 'B86B' /
|
DATA dft_GGAx_name(19) / 'B86B' /
|
||||||
DATA dft_GGAx_ref(19) / 'A.D.Becke, J.Chem.Phys. 85, 7184 (1986)' /
|
DATA dft_GGAx_ref(19) / 'A.D.Becke, J.Chem.Phys. 85, 7184 (1986)' /
|
||||||
|
@ -228,7 +229,7 @@ MODULE qe_dft_list
|
||||||
DATA dft_GGAx_name(40) / 'BEEX' /
|
DATA dft_GGAx_name(40) / 'BEEX' /
|
||||||
DATA dft_GGAx_ref(40) / '' /
|
DATA dft_GGAx_ref(40) / '' /
|
||||||
!
|
!
|
||||||
DATA dft_GGAx_name(41) / 'RPBX' /
|
DATA dft_GGAx_name(41) / 'HHNX' /
|
||||||
DATA dft_GGAx_ref(41) / '' /
|
DATA dft_GGAx_ref(41) / '' /
|
||||||
!
|
!
|
||||||
DATA dft_GGAx_name(42) / 'W31X' /
|
DATA dft_GGAx_name(42) / 'W31X' /
|
||||||
|
@ -372,10 +373,10 @@ MODULE qe_dft_list
|
||||||
DATA dft_name(14) / 'OPTBK88' /
|
DATA dft_name(14) / 'OPTBK88' /
|
||||||
DATA dft_name2(14) / 'none' /
|
DATA dft_name2(14) / 'none' /
|
||||||
DATA dft_IDs(14,1:6) / 1,4,23,1,0,0 /
|
DATA dft_IDs(14,1:6) / 1,4,23,1,0,0 /
|
||||||
DATA dft_descr(14) / 'optB88'
|
DATA dft_descr(14) / 'optB88' /
|
||||||
!
|
!
|
||||||
DATA dft_name(15) / 'OPTB86B'
|
DATA dft_name(15) / 'OPTB86B' /
|
||||||
DATA dft_name2(15) / 'none'
|
DATA dft_name2(15) / 'none' /
|
||||||
DATA dft_IDs(15,1:6) / 1,4,24,1,0,0 /
|
DATA dft_IDs(15,1:6) / 1,4,24,1,0,0 /
|
||||||
DATA dft_descr(15) / 'optB86' /
|
DATA dft_descr(15) / 'optB86' /
|
||||||
!
|
!
|
||||||
|
@ -476,7 +477,7 @@ MODULE qe_dft_list
|
||||||
!
|
!
|
||||||
DATA dft_name(33) / 'X3LYP' /
|
DATA dft_name(33) / 'X3LYP' /
|
||||||
DATA dft_name2(33) / 'none' /
|
DATA dft_name2(33) / 'none' /
|
||||||
DATA dft_IDs(33,1:6) / (/9,14,28,13,0,0 /
|
DATA dft_IDs(33,1:6) / 9,14,28,13,0,0 /
|
||||||
DATA dft_descr(33) / 'X3LYP' /
|
DATA dft_descr(33) / 'X3LYP' /
|
||||||
!
|
!
|
||||||
DATA dft_name(34) / 'TPSS' /
|
DATA dft_name(34) / 'TPSS' /
|
||||||
|
@ -530,7 +531,8 @@ CONTAINS
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
CHARACTER(LEN=*), INTENT(IN) :: name
|
CHARACTER(LEN=*), INTENT(IN) :: name
|
||||||
INTEGER, INTENT(OUT) :: IDs(6)
|
INTEGER, INTENT(INOUT) :: IDs(6)
|
||||||
|
INTEGER :: i
|
||||||
!
|
!
|
||||||
DO i = 1, n_dft
|
DO i = 1, n_dft
|
||||||
IF (name==dft_name(i) .OR. name==dft_name2(i)) THEN
|
IF (name==dft_name(i) .OR. name==dft_name2(i)) THEN
|
||||||
|
@ -551,7 +553,8 @@ CONTAINS
|
||||||
IMPLICIT NONE
|
IMPLICIT NONE
|
||||||
!
|
!
|
||||||
INTEGER, INTENT(IN) :: IDs(6)
|
INTEGER, INTENT(IN) :: IDs(6)
|
||||||
CHARACTER(LEN=*), INTENT(OUT) :: name
|
CHARACTER(LEN=*), INTENT(INOUT) :: name
|
||||||
|
INTEGER :: i
|
||||||
!
|
!
|
||||||
DO i = 1, n_dft
|
DO i = 1, n_dft
|
||||||
IF (ALL(IDs(:)==dft_IDs(i,:))) THEN
|
IF (ALL(IDs(:)==dft_IDs(i,:))) THEN
|
||||||
|
|
Loading…
Reference in New Issue