get_cso_damping Subroutine

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

Load CSO (C6-Scaled Only) damping parameters from internal storage

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_cso_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

   select case(get_method_id(method))
   case default
      call fatal_error(error, "No entry for '"//method//"' present")
      return
   case(p_blyp_df)
      param = d3_param(s6=1.0_wp, a1=1.28_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_bp_df)
      param = d3_param(s6=1.0_wp, a1=1.01_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_pbe_df)
      param = d3_param(s6=1.0_wp, a1=0.24_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_tpss_df)
      param = d3_param(s6=1.0_wp, a1=0.72_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_b3lyp_df, p_b3lyp_g_df)
      param = d3_param(s6=1.0_wp, a1=0.86_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_pbe0_df)
      param = d3_param(s6=1.0_wp, a1=0.20_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_pw6b95_df)
      param = d3_param(s6=1.0_wp, a1=-0.15_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   case(p_b2plyp_df)
      param = d3_param(s6=0.73_wp, a1=0.24_wp, a2=2.5_wp, rs6=0.0_wp, rs8=6.25_wp)
   end select

   if (present(citation)) citation = get_citation(doi_dftd3_cso)

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

end subroutine get_cso_damping