Get the unique identifier for most functionals, returns none if the functional was not known at the time I implemented this mapping
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | df |
pure function get_functional_id(df) result(num) integer(df_enum) :: num character(len=*), intent(in) :: df select case(df) case default num = p_invalid case("hf") num = p_hf case("am05", "gga_x_am05:gga_c_am05") num = p_am05 case("b-lyp", "blyp", "gga_x_b88:gga_c_lyp") num = p_blyp case("bpbe", "gga_x_b88:gga_c_pbe") num = p_bpbe case("b-p", "bp86", "bp", "b-p86", "gga_x_b88:gga_c_p86") num = p_bp case("bpw", "b-pw", "gga_x_b88:gga_c_pw91") num = p_bpw case("lb94", "gga_x_lb") ! no gga_c_lb num = p_lb94 case("mpwlyp", "mpw-lyp", "gga_x_mpw91:gga_c_lyp") num = p_mpwlyp case("mpwpw", "mpw-pw", "mpwpw91", "gga_x_mpw91:gga_c_pw91") num = p_mpwpw case("o-lyp", "olyp", "gga_x_optx:gga_c_lyp") num = p_olyp case("opbe", "gga_x_optx:gga_c_pbe") num = p_opbe case("pbe", "gga_x_pbe:gga_c_pbe") num = p_pbe case("rpbe", "gga_x_rpbe:gga_c_pbe") num = p_rpbe case("revpbe", "gga_x_pbe_r:gga_c_pbe") num = p_revpbe case("pbesol", "gga_x_pbe_sol:gga_c_pbe_sol") num = p_pbesol case("pw86pbe", "gga_x_pw86:gga_c_pbe") num = p_pw86pbe case("rpw86pbe", "gga_x_rpw86:gga_c_pbe") num = p_rpw86pbe case("pw91", "gga_x_pw91:gga_c_pw91") num = p_pw91 case("pwp", "pw-p", "pw91p86", "gga_x_pw91:gga_c_p86") num = p_pwp case("x-lyp", "xlyp", "gga_xc_xlyp") num = p_xlyp case("b97", "hyb_gga_xc_b97") num = p_b97 case("b97d", "gga_xc_b97_d") num = p_b97d case("tpss", "mgga_c_tpss:mgga_x_tpss") num = p_tpss case("revtpss", "mgga_c_revtpss:mgga_x_revtpss") num = p_revtpss case("scan", "mgga_x_scan:mgga_c_scan") num = p_scan case("rscan", "mgga_x_rscan:mgga_c_rscan") num = p_rscan case("r2scan", "r²scan", "mgga_x_r2scan:mgga_c_r2scan") num = p_r2scan case("r2scanh", "r²scanh", "hyb_mgga_xc_r2scanh") num = p_r2scanh case("r2scan0", "r²scan0", "hyb_mgga_xc_r2scan0") num = p_r2scan0 case("r2scan50", "r²scan50", "hyb_mgga_xc_r2scan50") num = p_r2scan50 case("r2scan-3c", "r²scan-3c", "r2scan_3c", "r²scan_3c", "r2scan3c") num = p_r2scan_3c case("b1lyp", "b1-lyp", "hyb_gga_xc_b1lyp") num = p_b1lyp case("b3-lyp", "b3lyp", "hyb_gga_xc_b3lyp", "hyb_gga_xc_b3lyp3", "hyb_gga_xc_b3lyp5") num = p_b3lyp case("bh-lyp", "bhlyp", "hyb_gga_xc_bhandh", "hyb_gga_xc_bhandhlyp") num = p_bhlyp case("b1p", "b1-p", "b1p86") ! 0.75 b88 + 0.25 hf; p86 (nonloc) + pw81 (loc) num = p_b1p case("b3p", "b3-p", "b3p86", "hyb_gga_xc_b3p86", "hyb_gga_xc_b3p86_nwchem") num = p_b3p case("b1pw", "b1-pw", "b1pw91", "hyb_gga_xc_b1pw91") num = p_b1pw case("b3pw", "b3-pw", "b3pw91", "hyb_gga_xc_b3pw91") num = p_b3pw case("o3-lyp", "o3lyp", "hyb_gga_xc_o3lyp") num = p_o3lyp case("revpbe0") ! no libxc num = p_revpbe0 case("revpbe38") ! no libxc num = p_revpbe38 case("pbe0", "hyb_gga_xc_pbeh") num = p_pbe0 case("pwp1") ! no libxc num = p_pwp1 case("pw1pw", "pw1-pw") ! no libxc num = p_pw1pw case("mpw1pw", "mpw1-pw", "mpw1pw91", "hyb_gga_xc_mpw1pw") num = p_mpw1pw case("mpw1lyp", "mpw1-lyp", "hyb_gga_xc_mpw1lyp") num = p_mpw1lyp case("pw6b95", "hyb_mgga_xc_pw6b95") num = p_pw6b95 case("tpssh", "hyb_mgga_xc_tpssh") num = p_tpssh case("tpss0", "hyb_mgga_xc_tpss0") num = p_tpss0 case("x3-lyp", "x3lyp", "hyb_gga_xc_x3lyp") num = p_x3lyp case("m06", "mgga_x_m06:mgga_c_m06") num = p_m06 case("m06l", "mgga_x_m06_l:mgga_c_m06_l") num = p_m06l case("mn12sx", "mn12-sx", "mgga_c_mn12_sx:mgga_c_mn12_sx") num = p_mn12sx case("cam-b3lyp", "camb3lyp", "hyb_gga_xc_cam_b3lyp") num = p_camb3lyp case("cam-qtp01", "camqtp01", "camqtp(01)", "cam-qtp(01)", & & "hyb_gga_xc_cam_qtp_01") num = p_camqtp01 case("lc-blyp", "lcblyp", "hyb_gga_xc_lc_blyp") num = p_lcblyp case("lc-wpbe", "lcwpbe", "lc-ωpbe", "lcωpbe", "lc-omegapbe", "lcomegapbe", & & "hyb_gga_xc_lc_wpbe", "hyb_gga_xc_lc_wpbe08_whs", & & "hyb_gga_xc_lc_wpbe_whs", "hyb_gga_xc_lrc_wpbe") num = p_lcwpbe case("lc-wpbeh", "lcwpbeh", "lc-ωpbeh", "lcωpbeh", "lc-omegapbeh", & & "lcomegapbeh", "hyb_gga_xc_lc_wpbeh_whs", "hyb_gga_xc_lrc_wpbeh") num = p_lcwpbeh case("lh07tsvwn", "lh07t-svwn") ! no libxc num = p_lh07tsvwn case("lh07ssvwn", "lh07s-svwn") ! no libxc num = p_lh07ssvwn case("lh12ctssirpw92", "lh12ct-ssirpw92") ! no libxc num = p_lh12ctssirpw92 case("lh12ctssifpw92", "lh12ct-ssifpw92") ! no libxc num = p_lh12ctssifpw92 case("lh14tcalpbe", "lh14t-calpbe") ! no libxc num = p_lh14tcalpbe case("lh20t") ! no libxc num = p_lh20t case("b2plyp", "b2-plyp", "xc_hyb_gga_xc_b2plyp") ! only in code num = p_b2plyp case("b2gpplyp", "b2gp-plyp", "xc_hyb_gga_xc_b2gpplyp") ! only in code num = p_b2gpplyp case("mpw2plyp") ! no libxc num = p_mpw2plyp case("pwpb95") ! no libxc num = p_pwpb95 case("dsdblyp", "dsd-blyp") ! no libxc num = p_dsdblyp case("dsdpbe", "dsd-pbe") ! no libxc num = p_dsdpbe case("dsdpbeb95", "dsd-pbeb95") ! no libxc num = p_dsdpbeb95 case("dsdpbep86", "dsd-pbep86") ! no libxc num = p_dsdpbep86 case("dsdsvwn", "dsd-svwn") ! no libxc num = p_dsdsvwn case("dodblyp", "dod-blyp") ! no libxc num = p_dodblyp case("dodpbe", "dod-pbe") ! no libxc num = p_dodpbe case("dodpbeb95", "dod-pbeb95") ! no libxc num = p_dodpbeb95 case("dodpbep86", "dod-pbep86") ! no libxc num = p_dodpbep86 case("dodsvwn", "dod-svwn") ! no libxc num = p_dodsvwn case("pbe02", "pbe0-2") ! no libxc num = p_pbe0_2 case("pbe0dh", "pbe0-dh") ! no libxc num = p_pbe0_dh case("dftb3", "dftb(3ob)") ! no libxc num = p_dftb_3ob case("dftb(mio)") ! no libxc num = p_dftb_mio case("dftb(pbc)") ! no libxc num = p_dftb_pbc case("dftb(matsci)") ! no libxc num = p_dftb_matsci case("lc-dftb", "dftb(ob2)") ! no libxc num = p_dftb_ob2 case("b1b95", "hyb_mgga_xc_b88b95") num = p_b1b95 case("mpwb1k", "hyb_mgga_xc_mpwb1k") num = p_mpwb1k case("mpw1b95", "hyb_mgga_xc_mpw1b95") num = p_mpw1b95 case("hse03", "hyb_gga_xc_hse03") num = p_hse03 case("hse06", "hyb_gga_xc_hse06") num = p_hse06 case("hse12", "hyb_gga_xc_hse12") num = p_hse12 case("hse12s", "hyb_gga_xc_hse12s") num = p_hse12s case("hsesol", "hyb_gga_xc_hse_sol") num = p_hsesol case("glyp", "g-lyp", "gga_x_g96:gga_c_lyp") num = p_glyp case("revpbe0dh", "revpbe0-dh") ! no libxc num = p_revpbe0dh case("revtpssh", "hyb_mgga_xc_revtpssh") num = p_revtpssh case("revtpss0") ! no libxc num = p_revtpss0 case("revdsd-pbep86", "revdsdpbep86") ! no libxc num = p_revdsdpbep86 case("revdsd-pbe", "revdsd-pbepbe", "revdsdpbe", "revdsdpbepbe") ! no libxc num = p_revdsdpbe case("revdsd-blyp", "revdsdblyp") ! no libxc num = p_revdsdblyp case("revdod-pbep86", "revdodpbep86") ! no libxc num = p_revdodpbep86 case("b97m", "mgga_xc_b97m_v") num = p_b97m case("wb97m", "ωb97m", "omegab97m", "hyb_mgga_xc_wb97m_v") num = p_wb97m case("wb97m-rev", "ωb97m-rev", "omegab97m-rev", "wb97m_rev", "ωb97m_rev", & & "omegab97m_rev") ! D4 re-parametrization num = p_wb97m_rev case("wb97", "ωb97", "omegab97", "hyb_gga_xc_wb97") num = p_wb97 case("wb97x-2008", "ωb97x-2008", "omegab97x-2008", "hyb_gga_xc_wb97x", & & "wb97x_2008", "ωb97x_2008", "omegab97x_2008") num = p_wb97x_2008 case("wb97x", "ωb97x", "omegab97x", "hyb_gga_xc_wb97x_v") num = p_wb97x case("wb97x-rev", "ωb97x-rev", "omegab97x-rev", "wb97x_rev", "ωb97x_rev", & & "omegab97x_rev") ! D4 re-parametrization num = p_wb97x_rev case("wb97x-3c", "ωb97x-3c", "omegab97x-3c", "wb97x_3c", "ωb97x_3c", & & "omegab97x_3c") ! no libxc num = p_wb97x_3c case("wr2scan", "wr²scan") ! no libxc num = p_wr2scan case("r2scan0-dh", "r²scan0-dh", "r2scan0dh", "r²scan0dh") ! no libxc num = p_r2scan0_dh case("r2scan-cidh", "r²scan-cidh", "r2scancidh", "r²scancidh") ! no libxc num = p_r2scan_cidh case("r2scan-qidh", "r²scan-qidh", "r2scanqidh", "r²scanqidh") ! no libxc num = p_r2scan_qidh case("r2scan0-2", "r²scan0-2", "r2scan02", "r²scan02") ! no libxc num = p_r2scan0_2 case("pr2scan50", "pr²scan50") ! no libxc num = p_pr2scan50 case("pr2scan69", "pr²scan69") ! no libxc num = p_pr2scan69 case("kpr2scan50", "kpr²scan50") ! no libxc num = p_kpr2scan50 case("wpr2scan50", "wpr²scan50") ! no libxc num = p_wpr2scan50 end select end function get_functional_id