Returns the interpolated value of a specific radial coupling term at a given distance.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | intermolecular_distance |
Intermolecular distance, \(R\) |
||
integer(kind=int32), | intent(in) | :: | lambda_ |
Legendre expansion index |
||
integer(kind=int32), | intent(in) | :: | v_ |
pre-collisional vibrational quantum number |
||
integer(kind=int32), | intent(in) | :: | j_ |
pre-collisional rotational quantum number |
||
integer(kind=int32), | intent(in) | :: | v_prime_ |
post-collisional vibrational quantum number |
||
integer(kind=int32), | intent(in) | :: | j_prime_ |
post-collisional rotational quantum number |
||
real(kind=dp), | intent(out) | :: | radial_term_value_ |
Value of the radial coupling coefficient |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=int32), | private | :: | coupling_index | ||||
integer(kind=int32), | private | :: | lambda_index |
subroutine get_radial_coupling_term_value(intermolecular_distance, &
lambda_, v_, j_, v_prime_, j_prime_, radial_term_value_)
!! Returns the interpolated value of a specific radial coupling term
!! at a given distance.
!---------------------------------------------------------------------!
real(dp), intent(in) :: intermolecular_distance
!! Intermolecular distance, \\(R\\)
integer(int32), intent(in) :: lambda_
!! Legendre expansion index
integer(int32), intent(in) :: v_
!! pre-collisional vibrational quantum number
integer(int32), intent(in) :: j_
!! pre-collisional rotational quantum number
integer(int32), intent(in) :: v_prime_
!! post-collisional vibrational quantum number
integer(int32), intent(in) :: j_prime_
!! post-collisional rotational quantum number
real(dp), intent(out) :: radial_term_value_
!! Value of the radial coupling coefficient
!---------------------------------------------------------------------!
integer(int32) :: lambda_index, coupling_index
!---------------------------------------------------------------------!
lambda_index = find_lambda_index(lambda_)
!---------------------------------------------------------------------!
if (lambda_index == 0) then
call handle_lambda_index_error(lambda_)
return
endif
!---------------------------------------------------------------------!
coupling_index = find_coupling_index(v_, j_, v_prime_, j_prime_)
!---------------------------------------------------------------------!
if (coupling_index == 0) then
call handle_coupling_index_error(v_, j_, v_prime_, j_prime_)
return
endif
!---------------------------------------------------------------------!
radial_term_value_ = ISPLINE(intermolecular_distance, &
number_of_r_points, r_grid, coupling_terms(:, lambda_index, &
coupling_index), coupling_terms_b_coeffs(:, lambda_index, &
coupling_index), coupling_terms_c_coeffs(:, lambda_index, &
coupling_index), coupling_terms_d_coeffs(:, lambda_index, &
coupling_index))
!---------------------------------------------------------------------!
end subroutine get_radial_coupling_term_value