get_zero_damping Subroutine

public subroutine get_zero_damping(param, method, error, s9, citation)

Arguments

Type IntentOptional Attributes Name
type(d3_param), intent(out) :: param

Loaded parameter record

character(len=*), intent(in) :: method

Name of the method to look up

type(error_type), intent(out), allocatable :: error

Error handling

real(kind=wp), intent(in), optional :: s9

Overwrite s9

type(citation_type), intent(out), optional :: citation

Citation information


Source Code

subroutine get_zero_damping(param, method, error, s9, citation)

   !> Loaded parameter record
   type(d3_param), intent(out) :: param

   !> Name of the method to look up
   character(len=*), intent(in) :: method

   !> Overwrite s9
   real(wp), intent(in), optional :: s9

   !> Citation information
   type(citation_type), intent(out), optional :: citation

   !> Error handling
   type(error_type), allocatable, intent(out) :: error

   character(len=:), allocatable :: doi

   select case(get_method_id(method))
   case default
      call fatal_error(error, "No entry for '"//method//"' present")
      return
   case(p_slaterdiracexchange_df)
      param = d3_param(rs6=0.999_wp, s8=-1.957_wp, rs8=0.697_wp)
   case(p_blyp_df)
      param = d3_param(rs6=1.094_wp, s8=1.682_wp)
      doi = doi_dftd3_0
   case(p_bp_df)
      param = d3_param(rs6=1.139_wp, s8=1.683_wp)
      doi = doi_dftd3_0
   case(p_b97d_df)
      param = d3_param(rs6=0.892_wp, s8=0.909_wp)
      doi = doi_dftd3_0
   case(p_b973c_df)
      param = d3_param(rs6=1.06_wp, s8=1.50_wp)
      doi = doi_b973c
   case(p_revpbe_df)
      param = d3_param(rs6=0.923_wp, s8=1.010_wp)
      doi = doi_dftd3_0
   case(p_pbe_df)
      param = d3_param(rs6=1.217_wp, s8=0.722_wp)
      doi = doi_dftd3_0
   case(p_pbesol_df)
      param = d3_param(rs6=1.345_wp, s8=0.612_wp)
   case(p_rpw86pbe_df)
      param = d3_param(rs6=1.224_wp, s8=0.901_wp)
   case(p_rpbe_df)
      param = d3_param(rs6=0.872_wp, s8=0.514_wp)
   case(p_tpss_df)
      param = d3_param(rs6=1.166_wp, s8=1.105_wp)
      doi = doi_dftd3_0
   case(p_b3lyp_df, p_b3lyp_g_df, p_dm21_df, p_dm21m_df, p_dm21mc_df, p_dm21mu_df)
      param = d3_param(rs6=1.261_wp, s8=1.703_wp)
      doi = doi_dftd3_0
   case(p_pbe0_df)
      param = d3_param(rs6=1.287_wp, s8=0.928_wp)
      doi = doi_dftd3_0
   case(p_hse06_df)
      param = d3_param(rs6=1.129_wp, s8=0.109_wp)
      doi = doi_hse06_d3
   case(p_revpbe38_df)
      param = d3_param(rs6=1.021_wp, s8=0.862_wp)
      doi = doi_gmtkn30_0
   case(p_pw6b95_df)
      param = d3_param(rs6=1.532_wp, s8=0.862_wp)
   case(p_tpss0_df)
      param = d3_param(rs6=1.252_wp, s8=1.242_wp)
      doi = doi_dftd3_0
   case(p_b2plyp_df)
      param = d3_param(rs6=1.427_wp, s8=1.022_wp, s6=0.64_wp)
      doi = doi_gmtkn30_0
   case(p_pwpb95_df)
      param = d3_param(rs6=1.557_wp, s8=0.705_wp, s6=0.82_wp)
      doi = doi_gmtkn30_0
   case(p_b2gpplyp_df)
      param = d3_param(rs6=1.586_wp, s8=0.760_wp, s6=0.56_wp)
      doi = doi_gmtkn30_0
   case(p_ptpss_df)
      param = d3_param(rs6=1.541_wp, s8=0.879_wp, s6=0.75_wp)
      doi = doi_gmtkn30_0
   case(p_hf_df)
      param = d3_param(rs6=1.158_wp, s8=1.746_wp)
      doi = doi_gmtkn30_bj
   case(p_mpwlyp_df)
      param = d3_param(rs6=1.239_wp, s8=1.098_wp)
      doi = doi_gmtkn30_bj
   case(p_bpbe_df)
      param = d3_param(rs6=1.087_wp, s8=2.033_wp)
      doi = doi_gmtkn30_bj
   case(p_bhlyp_df)
      param = d3_param(rs6=1.370_wp, s8=1.442_wp)
      doi = doi_gmtkn30_bj
   case(p_tpssh_df)
      param = d3_param(rs6=1.223_wp, s8=1.219_wp)
   case(p_pwb6k_df)
      param = d3_param(rs6=1.660_wp, s8=0.550_wp)
      doi = doi_gmtkn30_bj
   case(p_b1b95_df)
      param = d3_param(rs6=1.613_wp, s8=1.868_wp)
      doi = doi_gmtkn30_bj
   case(p_bop_df)
      param = d3_param(rs6=0.929_wp, s8=1.975_wp)
      doi = doi_gmtkn30_bj
   case(p_olyp_df)
      param = d3_param(rs6=0.806_wp, s8=1.764_wp)
      doi = doi_gmtkn30_bj
   case(p_opbe_df)
      param = d3_param(rs6=0.837_wp, s8=2.055_wp)
      doi = doi_gmtkn30_bj
   case(p_ssb_df)
      param = d3_param(rs6=1.215_wp, s8=0.663_wp)
      doi = doi_gmtkn30_bj
   case(p_revssb_df)
      param = d3_param(rs6=1.221_wp, s8=0.560_wp)
      doi = doi_gmtkn30_bj
   case(p_otpss_df)
      param = d3_param(rs6=1.128_wp, s8=1.494_wp)
      doi = doi_gmtkn30_bj
   case(p_b3pw91_df)
      param = d3_param(rs6=1.176_wp, s8=1.775_wp)
      doi = doi_gmtkn30_bj
   case(p_revpbe0_df)
      param = d3_param(rs6=0.949_wp, s8=0.792_wp)
      doi = doi_gmtkn30_bj
   case(p_pbe38_df)
      param = d3_param(rs6=1.333_wp, s8=0.998_wp)
      doi = doi_gmtkn30_bj
   case(p_mpw1b95_df)
      param = d3_param(rs6=1.605_wp, s8=1.118_wp)
      doi = doi_gmtkn30_bj
   case(p_mpwb1k_df)
      param = d3_param(rs6=1.671_wp, s8=1.061_wp)
      doi = doi_gmtkn30_bj
   case(p_bmk_df)
      param = d3_param(rs6=1.931_wp, s8=2.168_wp)
      doi = doi_gmtkn30_bj
   case(p_camb3lyp_df)
      param = d3_param(rs6=1.378_wp, s8=1.217_wp)
      doi = doi_gmtkn30_bj
   case(p_lcwpbe_df)
      param = d3_param(rs6=1.355_wp, s8=1.279_wp)
      doi = doi_gmtkn30_bj
   case(p_m05_df)
      param = d3_param(rs6=1.373_wp, s8=0.595_wp)
      doi = doi_gmtkn30_bj
   case(p_m052x_df)
      param = d3_param(rs6=1.417_wp, s8=0.000_wp)
      doi = doi_gmtkn30_bj
   case(p_m06l_df)
      param = d3_param(rs6=1.581_wp, s8=0.000_wp)
      doi = doi_gmtkn30_bj
   case(p_m06_df)
      param = d3_param(rs6=1.325_wp, s8=0.000_wp)
      doi = doi_gmtkn30_bj
   case(p_m062x_df)
      param = d3_param(rs6=1.619_wp, s8=0.000_wp)
      doi = doi_gmtkn30_bj
   case(p_m06hf_df)
      param = d3_param(rs6=1.446_wp, s8=0.000_wp)
      doi = doi_gmtkn30_bj
   case(p_hcth120_df)
      param = d3_param(rs6=1.221_wp, s8=1.206_wp)
   case(p_scan_df)
      param = d3_param(rs6=1.324_wp, s8=0.000_wp)
      doi = doi_scan_d3
   case(p_wb97x_df)
      param = d3_param(rs6=1.281_wp, s8=1.0_wp, rs8=1.094_wp)
      doi = doi_wb97x_d3
   case(p_pw1pw_df)
      param = d3_param(rs6=1.4968_wp, s8=1.1786_wp)
      doi = doi_gmtkn55
   case(p_pbehpbe_df)
      param = d3_param(rs6=1.5703_wp, s8=1.4010_wp)
      doi = doi_gmtkn55
   case(p_xlyp_df)
      param = d3_param(rs6=0.9384_wp, s8=0.7447_wp)
      doi = doi_gmtkn55
   case(p_mpwpw_df)
      param = d3_param(rs6=1.3725_wp, s8=1.9467_wp)
      doi = doi_gmtkn55
   case(p_hcth407_df)
      param = d3_param(rs6=4.0426_wp, s8=2.7694_wp)
      doi = doi_gmtkn55
   case(p_revtpss_df)
      param = d3_param(rs6=1.3491_wp, s8=1.3666_wp)
      doi = doi_gmtkn55
   case(p_tauhcth_df)
      param = d3_param(rs6=0.9320_wp, s8=0.5662_wp)
      doi = doi_gmtkn55
   case(p_b3p_df)
      param = d3_param(rs6=1.1897_wp, s8=1.1961_wp)
      doi = doi_gmtkn55
   case(p_b1p_df)
      param = d3_param(rs6=1.1815_wp, s8=1.1209_wp)
      doi = doi_gmtkn55
   case(p_b1lyp_df)
      param = d3_param(rs6=1.3725_wp, s8=1.9467_wp)
      doi = doi_gmtkn55
   case(p_mpw1lyp_df)
      param = d3_param(rs6=2.0512_wp, s8=1.9529_wp)
      doi = doi_gmtkn55
   case(p_mpw1pw_df)
      param = d3_param(rs6=1.2892_wp, s8=1.4758_wp)
      doi = doi_gmtkn55
   case(p_mpw1kcis_df)
      param = d3_param(rs6=1.7231_wp, s8=2.2917_wp)
      doi = doi_gmtkn55
   case(p_mpwkcis1k_df)
      param = d3_param(rs6=1.4853_wp, s8=1.7553_wp)
      doi = doi_gmtkn55
   case(p_pbeh1pbe_df)
      param = d3_param(rs6=1.3719_wp, s8=1.0430_wp)
      doi = doi_gmtkn55
   case(p_pbe1kcis_df)
      param = d3_param(rs6=3.6355_wp, s8=1.7934_wp)
      doi = doi_gmtkn55
   case(p_x3lyp_df)
      param = d3_param(rs6=1.0_wp, s8=0.2990_wp)
      doi = doi_gmtkn55
   case(p_o3lyp_df)
      param = d3_param(rs6=1.4060_wp, s8=1.8058_wp)
      doi = doi_gmtkn55
   case(p_b97_1_df)
      param = d3_param(rs6=3.7924_wp, s8=1.6418_wp)
      doi = doi_gmtkn55
   case(p_b97_2_df)
      param = d3_param(rs6=1.7066_wp, s8=1.6418_wp)
      doi = doi_gmtkn55
   case(p_b98_df)
      param = d3_param(rs6=2.6895_wp, s8=1.9078_wp)
      doi = doi_gmtkn55
   case(p_hiss_df)
      param = d3_param(rs6=1.3338_wp, s8=0.7615_wp)
      doi = doi_gmtkn55
   case(p_hse03_df)
      param = d3_param(rs6=1.3944_wp, s8=1.0156_wp)
      doi = doi_gmtkn55
   case(p_revtpssh_df)
      param = d3_param(rs6=1.3224_wp, s8=1.2504_wp)
      doi = doi_gmtkn55
   case(p_revtpss0_df)
      param = d3_param(rs6=1.2881_wp, s8=1.0649_wp)
      doi = doi_gmtkn55
   case(p_tpss1kcis_df)
      param = d3_param(rs6=1.7729_wp, s8=2.0902_wp)
      doi = doi_gmtkn55
   case(p_tauhcthhyb_df)
      param = d3_param(rs6=1.5001_wp, s8=1.6302_wp)
      doi = doi_gmtkn55
   case(p_pkzb_df)
      param = d3_param(rs6=0.6327_wp, s8=0.0_wp)
      doi = doi_gmtkn55
   case(p_n12_df)
      param = d3_param(rs6=1.3493_wp, s8=2.3916_wp)
      doi = doi_gmtkn55
   case(p_mpw2plyp_df)
      param = d3_param(s6=0.66_wp, rs6=1.5527_wp, s8=0.7529_wp)
      doi = doi_gmtkn55
   case(p_m08hx_df)
      param = d3_param(rs6=1.6247_wp, s8=0.0_wp)
      doi = doi_gmtkn55
   case(p_m11l_df)
      param = d3_param(rs6=2.3933_wp, s8=1.1129_wp)
      doi = doi_minnesota_d3
   case(p_mn15l_df)
      param = d3_param(rs6=3.3388_wp, s8=0.0_wp)
      doi = doi_gmtkn55
   case(p_pwp_df)
      param = d3_param(rs6=2.1040_wp, s8=0.8747_wp)
      doi = doi_gmtkn55
   end select

   if (.not.allocated(doi)) doi = doi_dftd3_0
   if (present(citation)) citation = get_citation(doi)

   if (present(s9)) then
      param%s9 = s9
   end if

end subroutine get_zero_damping