get_functional_id Function

public pure function get_functional_id(df) result(num)

Get the unique identifier for most functionals, returns none if the functional was not known at the time I implemented this mapping

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: df

Return Value integer(kind=df_enum)


Source Code

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