Load CSO (C6-Scaled Only) damping parameters from internal storage
| Type | Intent | Optional | 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 |
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