Collect all supported functionals
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(functional_group), | intent(out), | allocatable | :: | funcs(:) |
Collection of functionals with possibly different spellings/names |
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