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) = 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