get_functionals Subroutine

public subroutine get_functionals(funcs)

Collect all supported functionals

Arguments

Type IntentOptional Attributes Name
type(functional_group), intent(out), allocatable :: funcs(:)

Collection of functionals with possibly different spellings/names


Source Code

subroutine get_functionals(funcs)
   !DEC$ ATTRIBUTES DLLEXPORT :: get_functionals

   !> Collection of functionals with possibly different spellings/names
   type(functional_group), allocatable, intent(out) :: funcs(:)

   allocate(funcs(p_last - 1))

   funcs(p_hf) = new_funcgroup([character(len=20) :: "hf"])
   funcs(p_am05) = new_funcgroup([character(len=20) :: "am05"])
   funcs(p_blyp) = new_funcgroup([character(len=20) :: "b-lyp", "blyp"])
   funcs(p_bpbe) = new_funcgroup([character(len=20) :: "bpbe"])
   funcs(p_bp) = new_funcgroup([character(len=20) :: "b-p", "bp86", "bp", "b-p86"])
   funcs(p_bpw) = new_funcgroup([character(len=20) :: "bpw", "b-pw"])
   funcs(p_lb94) = new_funcgroup([character(len=20) :: "lb94"])
   funcs(p_mpwlyp) = new_funcgroup([character(len=20) :: "mpwlyp", "mpw-lyp"])
   funcs(p_mpwpw) = new_funcgroup([character(len=20) :: "mpwpw", "mpw-pw", "mpwpw91"])
   funcs(p_olyp) = new_funcgroup([character(len=20) :: "o-lyp", "olyp"])
   funcs(p_opbe) = new_funcgroup([character(len=20) :: "opbe"])
   funcs(p_pbe) = new_funcgroup([character(len=20) :: "pbe"])
   funcs(p_rpbe) = new_funcgroup([character(len=20) :: "rpbe"])
   funcs(p_revpbe) = new_funcgroup([character(len=20) :: "revpbe"])
   funcs(p_pw86pbe) = new_funcgroup([character(len=20) :: "pw86pbe"])
   funcs(p_rpw86pbe) = new_funcgroup([character(len=20) :: "rpw86pbe"])
   funcs(p_pw91) = new_funcgroup([character(len=20) :: "pw91"])
   funcs(p_pwp) = new_funcgroup([character(len=20) :: "pwp", "pw-p", "pw91p86"])
   funcs(p_xlyp) = new_funcgroup([character(len=20) :: "x-lyp", "xlyp"])
   funcs(p_b97) = new_funcgroup([character(len=20) :: "b97"])
   funcs(p_tpss) = new_funcgroup([character(len=20) :: "tpss"])
   funcs(p_revtpss) = new_funcgroup([character(len=20) :: "revtpss"])
   funcs(p_scan) = new_funcgroup([character(len=20) :: "scan"])
   funcs(p_rscan) = new_funcgroup([character(len=20) :: "rscan"])
   funcs(p_r2scan) = new_funcgroup([character(len=20) :: "r2scan", "r²scan"])
   funcs(p_r2scanh) = new_funcgroup([character(len=20) :: "r2scanh", "r²scanh"])
   funcs(p_r2scan0) = new_funcgroup([character(len=20) :: "r2scan0", "r²scan0"])
   funcs(p_r2scan50) = new_funcgroup([character(len=20) :: "r2scan50", "r²scan50"])
   funcs(p_r2scan_3c) = new_funcgroup([character(len=20) :: "r2scan-3c", &
      & "r²scan-3c", "r2scan_3c", "r²scan_3c", "r2scan3c"])
   funcs(p_wr2scan) = new_funcgroup([character(len=20) :: "wr2scan", "wr²scan"])
   funcs(p_r2scan0_dh) = new_funcgroup([character(len=20) :: "r2scan0-dh", &
      & "r²scan0-dh", "r2scan0dh", "r²scan0dh"])
   funcs(p_r2scan_cidh) = new_funcgroup([character(len=20) :: "r2scan-cidh", &
      & "r²scan-cidh", "r2scancidh", "r²scancidh"])
   funcs(p_r2scan_qidh) = new_funcgroup([character(len=20) :: "r2scan-qidh", &
      & "r²scan-qidh", "r2scanqidh", "r²scanqidh"])
    funcs(p_r2scan0_2) = new_funcgroup([character(len=20) :: "r2scan0-2", &
      & "r²scan0-2", "r2scan02", "r²scan02"])
   funcs(p_pr2scan50) = new_funcgroup([character(len=20) :: "pr2scan50", &
      & "pr²scan50", "pr2scan50", "pr²scan50"])
   funcs(p_pr2scan69) = new_funcgroup([character(len=20) :: "pr2scan69", &
      & "pr²scan69", "pr2scan69", "pr²scan69"])
   funcs(p_kpr2scan50) = new_funcgroup([character(len=20) :: "kpr2scan50", &
      & "kpr²scan50", "kpr2scan50", "kpr²scan50"])
   funcs(p_wpr2scan50) = new_funcgroup([character(len=20) :: "wpr2scan50", &
      & "wpr²scan50", "wpr2scan50", "wpr²scan50"])
   funcs(p_b1lyp) = new_funcgroup([character(len=20) :: "b1lyp", "b1-lyp"])
   funcs(p_b3lyp) = new_funcgroup([character(len=20) :: "b3-lyp", "b3lyp"])
   funcs(p_bhlyp) = new_funcgroup([character(len=20) :: "bh-lyp", "bhlyp"])
   funcs(p_b1p) = new_funcgroup([character(len=20) :: "b1p", "b1-p", "b1p86"])
   funcs(p_b3p) = new_funcgroup([character(len=20) :: "b3p", "b3-p", "b3p86"])
   funcs(p_b1pw) = new_funcgroup([character(len=20) :: "b1pw", "b1-pw", "b1pw91"])
   funcs(p_b3pw) = new_funcgroup([character(len=20) :: "b3pw", "b3-pw", "b3pw91"])
   funcs(p_o3lyp) = new_funcgroup([character(len=20) :: "o3-lyp", "o3lyp"])
   funcs(p_revpbe0) = new_funcgroup([character(len=20) :: "revpbe0"])
   funcs(p_revpbe38) = new_funcgroup([character(len=20) :: "revpbe38"])
   funcs(p_pbe0) = new_funcgroup([character(len=20) :: "pbe0"])
   funcs(p_pwp1) = new_funcgroup([character(len=20) :: "pwp1"])
   funcs(p_pw1pw) = new_funcgroup([character(len=20) :: "pw1pw", "pw1-pw"])
   funcs(p_mpw1pw) = new_funcgroup([character(len=20) :: "mpw1pw", "mpw1-pw", "mpw1pw91"])
   funcs(p_mpw1lyp) = new_funcgroup([character(len=20) :: "mpw1lyp", "mpw1-lyp"])
   funcs(p_pw6b95) = new_funcgroup([character(len=20) :: "pw6b95"])
   funcs(p_tpssh) = new_funcgroup([character(len=20) :: "tpssh"])
   funcs(p_tpss0) = new_funcgroup([character(len=20) :: "tpss0"])
   funcs(p_x3lyp) = new_funcgroup([character(len=20) :: "x3-lyp", "x3lyp"])
   funcs(p_m06) = new_funcgroup([character(len=20) :: "m06"])
   funcs(p_m06l) = new_funcgroup([character(len=20) :: "m06l"])
   funcs(p_mn12sx) = new_funcgroup([character(len=20) :: "mn12sx", "mn12-sx"])
   funcs(p_b97d) = new_funcgroup([character(len=20) :: "b97d"])
   funcs(p_lh07tsvwn) = new_funcgroup([character(len=20) :: "lh07tsvwn", "lh07t-svwn"])
   funcs(p_lh07ssvwn) = new_funcgroup([character(len=20) :: "lh07ssvwn", "lh07s-svwn"])
   funcs(p_lh12ctssirpw92) = new_funcgroup([character(len=20) :: "lh12ctssirpw92", "lh12ct-ssirpw92"])
   funcs(p_lh12ctssifpw92) = new_funcgroup([character(len=20) :: "lh12ctssifpw92", "lh12ct-ssifpw92"])
   funcs(p_lh14tcalpbe) = new_funcgroup([character(len=20) :: "lh14tcalpbe", "lh14t-calpbe"])
   funcs(p_lh20t) = new_funcgroup([character(len=20) :: "lh20t"])
   funcs(p_b2plyp) = new_funcgroup([character(len=20) :: "b2plyp", "b2-plyp"])
   funcs(p_b2gpplyp) = new_funcgroup([character(len=20) :: "b2gpplyp", "b2gp-plyp"])
   funcs(p_mpw2plyp) = new_funcgroup([character(len=20) :: "mpw2plyp"])
   funcs(p_pwpb95) = new_funcgroup([character(len=20) :: "pwpb95"])
   funcs(p_dsdblyp) = new_funcgroup([character(len=20) :: "dsdblyp", "dsd-blyp"])
   funcs(p_dsdpbe) = new_funcgroup([character(len=20) :: "dsdpbe", "dsd-pbe"])
   funcs(p_dsdpbeb95) = new_funcgroup([character(len=20) :: "dsdpbeb95", "dsd-pbeb95"])
   funcs(p_dsdpbep86) = new_funcgroup([character(len=20) :: "dsdpbep86", "dsd-pbep86"])
   funcs(p_dsdsvwn) = new_funcgroup([character(len=20) :: "dsdsvwn", "dsd-svwn"])
   funcs(p_dodblyp) = new_funcgroup([character(len=20) :: "dodblyp", "dod-blyp"])
   funcs(p_dodpbe) = new_funcgroup([character(len=20) :: "dodpbe", "dod-pbe"])
   funcs(p_dodpbeb95) = new_funcgroup([character(len=20) :: "dodpbeb95", "dod-pbeb95"])
   funcs(p_dodpbep86) = new_funcgroup([character(len=20) :: "dodpbep86", "dod-pbep86"])
   funcs(p_dodsvwn) = new_funcgroup([character(len=20) :: "dodsvwn", "dod-svwn"])
   funcs(p_pbe0_2) = new_funcgroup([character(len=20) :: "pbe02", "pbe0-2"])
   funcs(p_pbe0_dh) = new_funcgroup([character(len=20) :: "pbe0dh", "pbe0-dh"])
   funcs(p_dftb_3ob) = new_funcgroup([character(len=20) :: "dftb3", "dftb(3ob)"])
   funcs(p_dftb_mio) = new_funcgroup([character(len=20) :: "dftb(mio)"])
   funcs(p_dftb_pbc) = new_funcgroup([character(len=20) :: "dftb(pbc)"])
   funcs(p_dftb_matsci) = new_funcgroup([character(len=20) :: "dftb(matsci)"])
   funcs(p_dftb_ob2) = new_funcgroup([character(len=20) :: "lc-dftb", "dftb(ob2)"])
   funcs(p_b1b95) = new_funcgroup([character(len=20) :: "b1b95"])
   funcs(p_pbesol) = new_funcgroup([character(len=20) :: "pbesol"])
   funcs(p_mpwb1k) = new_funcgroup([character(len=20) :: "mpwb1k"])
   funcs(p_mpw1b95) = new_funcgroup([character(len=20) :: "mpw1b95"])
   funcs(p_hse03) = new_funcgroup([character(len=20) :: "hse03"])
   funcs(p_hse06) = new_funcgroup([character(len=20) :: "hse06"])
   funcs(p_hse12) = new_funcgroup([character(len=20) :: "hse12"])
   funcs(p_hse12s) = new_funcgroup([character(len=20) :: "hse12s"])
   funcs(p_hsesol) = new_funcgroup([character(len=20) :: "hsesol"])
   funcs(p_revtpssh) = new_funcgroup([character(len=20) :: "revtpssh"])
   funcs(p_glyp) = new_funcgroup([character(len=20) :: "glyp", "g-lyp"])
   funcs(p_revpbe0dh) = new_funcgroup([character(len=20) :: "revpbe0dh", "revpbe0-dh"])
   funcs(p_revtpss0) = new_funcgroup([character(len=20) :: "revtpss0"])
   funcs(p_revdsdpbep86) = new_funcgroup([character(len=20) :: "revdsd-pbep86", "revdsdpbep86"])
   funcs(p_revdsdpbe) = new_funcgroup([character(len=20) :: "revdsd-pbe", "revdsd-pbepbe", "revdsdpbe", "revdsdpbepbe"])
   funcs(p_revdsdblyp) = new_funcgroup([character(len=20) :: "revdsd-blyp", "revdsdblyp"])
   funcs(p_revdodpbep86) = new_funcgroup([character(len=20) :: "revdod-pbep86", "revdodpbep86"])
   funcs(p_b97m) = new_funcgroup([character(len=20) :: "b97m"])
   funcs(p_wb97m) = new_funcgroup([character(len=20) :: "wb97m", "ωb97m", "omegab97m"])
   funcs(p_wb97m_rev) = new_funcgroup([character(len=20) :: "wb97m-rev", &
      & "ωb97m-rev", "omegab97m-rev", "wb97m_rev", "ωb97m_rev", "omegab97m_rev"])
   funcs(p_wb97) = new_funcgroup([character(len=20) :: "wb97", "ωb97", "omegab97"])
   funcs(p_wb97x_2008) = new_funcgroup([character(len=20) :: "wb97x_2008", &
      & "ωb97x_2008", "omegab97x_2008", "wb97x-2008", "ωb97x-2008", &
      & "omegab97x-2008"])
   funcs(p_wb97x) = new_funcgroup([character(len=20) :: "wb97x", "ωb97x", &
      & "omegab97x"])
   funcs(p_wb97x_rev) = new_funcgroup([character(len=20) :: "wb97x-rev", &
      & "ωb97x-rev", "omegab97x-rev", "wb97x_rev", "ωb97x_rev", "omegab97x_rev"])
   funcs(p_wb97x_3c) = new_funcgroup([character(len=20) :: "wb97x-3c", &
      & "ωb97x-3c", "omegab97x-3c", "wb97x_3c", "ωb97x_3c", "omegab97x_3c"])
   funcs(p_camb3lyp) = new_funcgroup([character(len=20) :: "cam-b3lyp", "camb3lyp"])
   funcs(p_camqtp01) = new_funcgroup([character(len=20) :: "cam-qtp01", &
      & "camqtp01", "camqtp(01)", "cam-qtp(01)"])
   funcs(p_lcblyp) = new_funcgroup([character(len=20) :: "lc-blyp", "lcblyp"])
   funcs(p_lcwpbe) = new_funcgroup([character(len=20) :: "lc-wpbe", &
      & "lcwpbe", "lc-ωpbe", "lcωpbe", "lc-omegapbe", "lcomegapbe"])
   funcs(p_lcwpbeh) = new_funcgroup([character(len=20) :: "lc-wpbeh", &
      & "lcwpbeh", "lc-ωpbeh", "lcωpbeh", "lc-omegapbeh", "lcomegapbeh"])

end subroutine get_functionals